Java多線程的同步依靠的是對象鎖機制這個問題需要我們不斷的學習相關的問題下面我們就來詳細的學習下如何才能更好的進行具體內容的使用synchronized關鍵字的背後就是利用了封鎖來實現對共享資源的互斥訪問
下面以一個簡單的實例來進行對比分析實例要完成的工作非常簡單就是創建個線程每個線程都打印從到這個數字我們希望線程之間不會出現交叉亂序打印而是順序地打印
先來看第一段代碼這裡我們在run()方法中加入了synchronized關鍵字希望能對run方法進行互斥訪問但結果並不如我們希望那樣這是因為這裡synchronized鎖住的是this對象即當前運行線程對象本身Java多線程代碼中創建了個線程而每個線程都持有this對象的對象鎖這不能實現線程的同步
Java多線程代碼如下
package comvista;
class MyThread implements javalangRunnable
{
private int threadId;
public MyThread(int id)
{
thisthreadId = id;
}
@Override
public synchronized void run()
{
for (int i = ; i < ; ++i)
{
Systemoutprintln(Thread ID: + thisthreadId + : + i);
}
}
}
public class ThreadDemo
{
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException
{
for (int i = ; i < ; ++i)
{
new Thread(new MyThread(i))start();
Threadsleep();
}
}
}
以上就是對Java多線程的詳細代碼介紹
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27402.html