到目前為止,我們僅用到兩個執行緒:主線程和乙個子執行緒。然而,你的程式可以建立所需的更多執行緒。例如,下面的程式建立了三個子執行緒:
// 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的一些同步方法,執行緒永...