編寫乙個多執行緒程式(C,快點,請幫忙。 簡單就好了。

發布 科技 2024-03-22
17個回答
  1. 匿名使用者2024-02-07

    #pragma once

    #include

    handle threadhandle;

    dword winapi threadproc( lpvoid lpparameter )

    int ia,ib;

    ia = 5;

    ib = 6;

    int isum = ia+ib;

    終止執行緒。 terminatethread( threadhandle, 0 );

    return 0;

    int main()

    建立執行緒(建立執行緒時,會自動呼叫執行緒函式)。

    ThreadHandle = CreateThread( null,通常為 null

    0,通常為 0

    threadproc,乙個執行緒函式(自動呼叫)。

    null,一般為 null

    0,通常為 0

    null //

    system( "pause" );

  2. 匿名使用者2024-02-06

    簡單的多執行緒程式設計。

    Linux 下的多執行緒遵循 Posix 執行緒介面,稱為 pthread。 在Linux下編寫多執行緒程式,需要使用標頭檔案,連線時需要使用庫。 順便說一句,Linux 下 pthread 的實現是通過系統呼叫 clone() 實現的。

    clone() 是乙個 Linux 特有的系統呼叫,它以類似 fork 的方式使用,有關 clone() 的更多資訊,感興趣的讀者可以檢視相關文件。 下面我們展示最簡單的多執行緒程式之一。

    #include

    #include

    void thread(void)

    int i;

    for(i=0;i<3;i++)

    printf("this is a pthread.");

    int main(void)

    pthread_t id;

    int i,ret;

    if(ret!=0){

    printf ("create pthread error!");

    exit (1);

    for(i=0;i<3;i++)

    printf("this is the main process.");

    pthread_join(id,null);

    return (0);

    我們編譯這個程式:

    gcc -lpthread -o example1,我們得到以下結果:

    this is the main process.

    this is a pthread.

    this is the main process.

    this is the main process.

    this is a pthread.

    this is a pthread.

    再次執行它,我們可能會得到如下結果:

    this is a pthread.

    this is the main process.

    this is a pthread.

    this is the main process.

    this is a pthread.

    this is the main process.忘記。

  3. 匿名使用者2024-02-05

    1. 單擊選單欄中的“專案”選項卡,下拉列表中的最後一項是“專案選項”。它是設定當前專案的屬性。

    2. 在彈出的對話方塊中選擇“編譯器”選項卡。

    3. 將“Runtime Library”的選定更改為“Multithreaded (Lib)”。

    4. 你會看到對話方塊底部的文字框做了一些改動,增加了“-mt”選項,這與開頭編譯器報錯資訊給出的解決方法一致。

    5.頁面設定完成後,當原始碼編譯完成時,您可以愉快地看到編譯完全成功。

  4. 匿名使用者2024-02-04

    1. 使用 pthread 庫。

    執行多執行緒,這是 linux 下的執行緒庫 windows 應該有自己的 api,但這種東西一般都是基於 linux。 pthread create() 要建立執行緒,請傳入 fun() 的函式指標。

    2. 示例:包括

    #include

    #include

    #include

    #define max 10

    pthread_t thread[2];

    pthread_mutex_t mut;

    int number=0, i;

    void *thread1()

    printf("執行緒1:main 函式在等我完成任務嗎? ");

    pthread_exit(null);

    void *thread2()

    printf("執行緒2:main 函式在等我完成任務嗎? ");

    pthread_exit(null);

    void thread_create(void)void thread_wait(void)if(thread[1] !=0)

    int main()

  5. 匿名使用者2024-02-03

    C11 自帶多執行緒庫,而舊版本的 C 需要呼叫相應的系統 API 或第三方庫。

  6. 匿名使用者2024-02-02

    1。如果乙個程式執行時間過長並且介面宕機,你可以把它放到乙個執行緒中。

    2。有些片段需要反覆執行,可以放入執行緒中。

    3。提高程式的執行效率。

  7. 匿名使用者2024-02-01

    只是想同時做不同的事情。

  8. 匿名使用者2024-01-31

    執行緒的執行需要提供計算資源,而計算機最直接的計算資源,除了記憶體之外,就是CPU。 執行緒的執行會占用 CPU 時間。 該作業系統旨在模擬使用者的“併發外觀”。"底層其實就是使用時間片輪詢的策略,即將CPU時間切成更小的粒度時間片,然後依次提交到每個執行緒執行,每個執行緒都會得到在使用者可感知的時間內執行的機會。

    將其留給“單個執行緒”來執行,或者更準確地說,留給“等待執行的單個執行緒”。 掛起執行緒,其實就是告訴作業系統這個執行緒處於非活動狀態,暫時不需要操作,可以從上面提到的等待執行的執行緒佇列中移除,然後放到“掛起執行緒池”中,等到以後排程作業系統CPU的時候, 它將不再輪詢此執行緒以不必要地浪費 CPU 時間,以便其他真正活躍的執行緒可以獲得更多的 CPU 執行時間。

    那麼,如果執行緒掛起並想在將來的某個時候重新執行它怎麼辦? 喚醒執行緒的過程其實是從“掛起執行緒池”到“等待執行的執行緒佇列”,當CPU時間輪詢到這個執行緒時,就可以愉快地再次玩了。

  9. 匿名使用者2024-01-30

    一般來說,是為了降低執行緒的CPU使用率。

  10. 匿名使用者2024-01-29

    如果兩個執行緒可以同時執行,則效能可以提高一半,這裡有乙個先決條件:您的程式在分配了兩個 CPU 核心的情況下執行,並且在執行過程中沒有意外中斷。 在實際環境中,作業系統中的程序和執行緒數總是大於 CPU 核心數,並且不能保證程式每次執行都能獲得正確數量的 CPU,並且執行過程不會中斷。

    對於C++03 98來說,由於語言本身並不直接支援多執行緒,所以只能使用第三方執行緒庫或直接使用作業系統API,而部分第三方執行緒庫沒有提供足夠的併發容量,由於核心模式切換導致執行緒效能低下。

  11. 匿名使用者2024-01-28

    多執行緒和單執行緒執行效率問題。 這不僅僅是乙個角度的問題,也是關於其他方面的問題。 例如,它取決於實際開發中的問題和場景,甚至取決於硬體級別(單核或多核)和軟體級別(多執行緒實現原則)。

  12. 匿名使用者2024-01-27

    是的,從理論上講,兩個執行緒同時工作的效率幾乎是乙個執行緒的兩倍。

    例如,如果你已經編寫了UI,你應該經常使用多執行緒程式設計來防止介面凍結; 如果你曾經做過網路程式設計,你會發現多執行緒的主要目的是監聽和接收訊息。 在這些地方進行多執行緒處理的主要目的不是為了提高效率。

  13. 匿名使用者2024-01-26

    多執行緒工作可以提高解決問題的速度。

    你可以舉個多執行緒的例子,但更多的人稱之為分布式計算多執行緒,主要是建立多個執行緒,每個執行緒負責自己的業務,每個執行緒只負責主線程。

    至於解決問題的速度,應該可以提高一半,但要注意資源的互斥,如果互斥處理不好,估計就要事半功倍。

  14. 匿名使用者2024-01-25

    是的,多執行緒的乙個重要應用是平行計算。

  15. 匿名使用者2024-01-24

    當多個執行緒訪問獨佔共享資源時,可以使用 Critical Zone 物件。 任何時候只能有乙個執行緒有乙個臨界區域物件,具有臨界區域的執行緒可以訪問受保護的資源或段,其他想要進入臨界區域的執行緒將被暫停並等待,直到具有臨界區域的執行緒放棄臨界區域,從而保證沒有多個執行緒同時訪問共享資源。

    ccriticalSection 類的使用非常簡單,步驟如下:

    定義 CcriticalSection 類的全域性物件(以便所有執行緒都可以訪問它),例如 CcriticalSection Critical Section;

    在訪問需要保護的資源或**之前,呼叫 ccriticalSection 類的成員 lock() 來獲取乙個關鍵部分物件:critical;

    在此過程中呼叫此函式,以使執行緒獲取它請求的關鍵區域。 如果此時沒有其他執行緒占用關鍵區域物件,則呼叫 lock() 的執行緒獲取關鍵區域; 否則,執行緒將掛起並放置在系統佇列中,直到當前擁有關鍵區域的執行緒釋放關鍵區域。

    訪問關鍵部分後,使用 ccriticalsection 的成員函式 unlock() 釋放關鍵部分:critical;

    通俗地說,執行緒 A 執行到關鍵; 語句,如果其他執行緒 (b) 正在執行 critical; 關鍵部分 unlock();執行緒 A 等待執行緒 B 完成執行關鍵部分 unlock();語句,執行緒 A 將繼續執行。

  16. 匿名使用者2024-01-23

    程序中的所有執行緒共享程序的虛擬位址空間,程序中的執行緒併行執行,系統對每個執行緒的執行時間進行劃分

  17. 匿名使用者2024-01-22

    看看我們的作業系統手冊,它已經啟動了。

相關回答
7個回答2024-03-22

我會修復它,朋友,我不想分割它,呵呵。 >>>More

10個回答2024-03-22

ARP 包可用於 MS 的 Platformsdk in IP helper dword sendarp (ipaddr destip, ipaddr srcip, pulong pmacaddr, pulong phyaddrlen); >>>More

5個回答2024-03-22

提供的**主要基於以下兩個錯誤:

1. 如果要通過賦值來初始化 4*4 矩陣,則需要分兩層迴圈。 >>>More