七 多執行緒程式設計5 建立多執行緒

2022-08-26 20:27:14 字數 942 閱讀 9052

到目前為止,我們僅用到兩個執行緒:主線程和乙個子執行緒。然而,你的程式可以建立所需的更多執行緒。例如,下面的程式建立了三個子執行緒:

// create multiple threads.

class newthread implements runnable

// this is the entry point for thread.

public void run()

} catch (interruptedexception e)

system.out.println(name + " exiting.");}}

class multithreaddemo catch (interruptedexception e)

system.out.println("main thread exiting.");}}

程式輸出如下所示:

new thread: thread[one,5,main]

new thread: thread[two,5,main]

new thread: thread[three,5,main]

one: 5

two: 5

three: 5

one: 4

two: 4

three: 4

one: 3

three: 3

two: 3

one: 2

three: 2

two: 2

one: 1

three: 1

two: 1

one exiting.

two exiting.

three exiting.

main thread exiting.

如你所見,一旦啟動,所有三個子執行緒共享cpu。注意main()中對sleep(10000)的呼叫。這使主線程沉睡十秒確保它最後結束。

5 建立多執行緒

到目前為止,我們僅用到兩個執行緒 主線程和乙個子執行緒。然而,你的程式可以建立所需的更多執行緒。例如,下面的程式建立了三個子執行緒 create multiple threads.class newthread implements runnable this is the entry point ...

c 11多執行緒併發程式設計學習 5 建立多執行緒

一.建立多個執行緒 1 include2 include3 include4 include5 using namespace std 6 7 void fun int i 執行緒執行函式 8 20 21 等待所有子執行緒結束,使用迭代器很方便 22 for auto iter threads.be...

七 多執行緒程式設計10 執行緒死鎖

需要避免的與多工處理有關的特殊錯誤型別是死鎖 deadlock 死鎖發生在當兩個執行緒對一對同步物件有迴圈依賴關係時。例如,假定乙個執行緒進入了物件x的管程而另乙個執行緒進入了物件y的管程。如果x的執行緒試圖呼叫y的同步方法,它將像預料的一樣被鎖定。而y的執行緒同樣希望呼叫x的一些同步方法,執行緒永...