成功產生執行緒之後
接下來要做的就是實作執行緒的功能了
把run裡面那行 System.out.println("W"+id+"成功產生"); 砍掉吧
我們需要一個長度60的一維陣列
執行緒所要執行的動作
我們可以寫成一個函數
但這個函數一次只能讓一個執行緒執行
所以他需要同步 synchronized
在Example裡寫一個synchronized函數
然後,我們還需要一個變數,當作計數器(或指標)
陣列每存入一個數字,計數器就+1
接下來我們回到執行緒的部分
每個執行緒所要做的是:
成功執行synchronized函數 push 15次
所以我們需要一個迴圈
要執行push函數
為了讓我們的W0,W1,W2,W3能比較<平均>的執行
我們使用Thread.sleep
讓呼叫push函數後的執行緒隨機休息0~9毫秒
這裡有使用亂數,所以記得在類別內加上
Random r=new Random();
我們把亂數rand和執行緒的id傳給push函數
再來我們把焦點放到push函數
接下來要做的就是實作執行緒的功能了
把run裡面那行 System.out.println("W"+id+"成功產生"); 砍掉吧
我們需要一個長度60的一維陣列
執行緒所要執行的動作
我們可以寫成一個函數
但這個函數一次只能讓一個執行緒執行
所以他需要同步 synchronized
在Example裡寫一個synchronized函數
然後,我們還需要一個變數,當作計數器(或指標)
陣列每存入一個數字,計數器就+1
接下來我們回到執行緒的部分
每個執行緒所要做的是:
成功執行synchronized函數 push 15次
所以我們需要一個迴圈
要執行push函數
為了讓我們的W0,W1,W2,W3能比較<平均>的執行
我們使用Thread.sleep
讓呼叫push函數後的執行緒隨機休息0~9毫秒
這裡有使用亂數,所以記得在類別內加上
Random r=new Random();
我們把亂數rand和執行緒的id傳給push函數
再來我們把焦點放到push函數
留言
張貼留言