pthreads

    0熱度

    1回答

    當我運行下面的代碼時,單個線程似乎按順序執行,一次執行。我期待他們能夠平行運行。我的代碼有什麼問題,或者我應該開始看看我的環境?我在Windows機器上運行Apache,PHP 7。 <?php class Searcher extends Worker { public $data = []; public function addData($data) {

    0熱度

    1回答

    我期望獲得100,000個請求,其中至少有100個請求是併發的。每當我收到請求時,我都會創建一個新線程,並在使用pthread_exit()完成後將其銷燬。使用pthread_detach我獲得99%的成功率。有沒有比這更好的方法? pthread_t hilo; // infinite loop while ((client_sock = accept(server_sock, (struc

    0熱度

    1回答

    我知道pthread_self()和syscall(SYS_gettid)之間的difference。 pthread_create()產生一個POSIX線程ID,它由一個struct pthread_t表示,它通常被定義爲一個unsigned long int。我們可以使用pthread_self來獲得pthread_create生成的ID of the thread。 隨着strace,我知道

    1熱度

    1回答

    這應該在循環(服務器)中工作,並將工作/查詢委託給由longrun()函數調用表示的錯誤庫到超時tmax = 3s的線程。我放置了同步變量,我試圖等待不超過這個限制,但是當longrun()掛起(運行4)時,它仍然等待全部時間(7s)而不是所請求的限制。誰能解釋一下? #include <unistd.h> #include <errno.h> #include <stdio.h> #inc

    0熱度

    1回答

    這似乎是一個簡單的任務,但它不起作用。我的線程函數運行在一個循環中,並始終將數據寫入數組。但有時我想從我的主要功能中讀取這些數據。因此,閱讀功能應理想地暫停線程,讀取數據,然後恢復線程。但是,讀取的值不正確,似乎已損壞。也許有些不妥: 線程FCT: void threadfct() { while (1) { pthread_mutex_lock(&mutex);

    1熱度

    1回答

    的想法是有其啓動多個工作線程一個主線程。除了發送信號之外,沒有明確的方式退出程序。但是程序也應該在任何地方發生錯誤時乾淨地退出。 我試圖表明我有什麼至今。標題沒有顯示,但沒有它們應該清楚。我們有一個主函數main.c,其中main函數開始於worker.c,它具有線程管理和object.c的抽象,一個工作線程的特定實現。將會有多種不同的實現,但都具有相同的結構(即,具有while(running)

    2熱度

    1回答

    我只是想了解g ++使用的一個概念。在這裏我很簡單的std ::跟帖報名: #include <iostream> #include <thread> void func() { std::cout << "Running..." << std::endl; } int main() { std::thread t(func); t.join();

    0熱度

    1回答

    我正在使用pthreads庫來嘗試使用顯示器實現讀寫器應用程序。 我打電話給我的線程函數的主要方式如下 pthread_t *tid; tid = (pthread_t*)malloc(sizeof(pthread_t)*(r + w)); int addr = 0; //Create r # readers for (int a = 0; a < r; a++) { pthr

    0熱度

    2回答

    我想在調用所有C++ thread_local析構函數之後做一些工作。 這是平臺特定的 - Android,所以我有權訪問pthreads。 問題是,當應該調用dd析構函數時,在C++ thread_local析構函數之前或之後?或者他們可以交錯? 我測試了在C++之後調用的Linux Mint和pthread析構函數。

    0熱度

    1回答

    我有一個項目,我正在將作業添加到隊列中,並且我有多個線程正在進行作業,並計算出自己的獨立結果。 我的程序處理SIGINT信號,我試圖加入線程來合併結果,打印到屏幕,然後退出。我的問題是,當我發送信號時線程似乎停止工作,或者他們在mutex_lock上被阻塞。這裏是我的程序的重要部分,以便簡潔。 的main.c //the thread pool has a queue of jobs inside