新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java多線程如何創(chuàng)建多個線程
Java多線程的同步依靠的是對象鎖機制,這個問題需要我們不斷的學習相關的問題。下面我們就來詳細的學習下如何才能更好的進行具體內(nèi)容的使用。synchronized關鍵字的背后就是利用了封鎖來實現(xiàn)對共享資源的互斥訪問。

網(wǎng)站的建設成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設計體驗!已為成都衛(wèi)生間隔斷等企業(yè)提供專業(yè)服務。
下面以一個簡單的實例來進行對比分析。實例要完成的工作非常簡單,就是創(chuàng)建10個線程,每個線程都打印從0到99這100個數(shù)字,我們希望線程之間不會出現(xiàn)交叉亂序打印,而是順序地打印。
先來看***段代碼,這里我們在run()方法中加入了synchronized關鍵字,希望能對run方法進行互斥訪問,但結(jié)果并不如我們希望那樣,這是因為這里synchronized鎖住的是this對象,即當前運行線程對象本身。Java多線程代碼中創(chuàng)建了10個線程,而每個線程都持有this對象的對象鎖,這不能實現(xiàn)線程的同步。
Java多線程代碼如下
- package com.vista;
- class MyThread implements java.lang.Runnable
- {
- private int threadId;
- public MyThread(int id)
- {
- this.threadId = id;
- }
- @Override
- public synchronized void run()
- {
- for (int i = 0; i < 100; ++i)
- {
- System.out.println("Thread ID: " + this.threadId + " : " + i);
- }
- }
- }
- public class ThreadDemo
- {
- /**
- * @param args
- * @throws InterruptedException
- */
- public static void main(String[] args) throws InterruptedException
- {
- for (int i = 0; i < 10; ++i)
- {
- new Thread(new MyThread(i)).start();
- Thread.sleep(1);
- }
- }
- }
以上就是對Java多線程的詳細代碼介紹。
【編輯推薦】
- Python編程語言與Java的技術(shù)比較
- OSGi要火 IBM和Eclipse將大力發(fā)展Java模塊化
- Python編程語言與Java的性能比較
- 實例:使用Java構(gòu)建股指期貨交易系統(tǒng)
- Java線程池如何體現(xiàn)自己的用途
網(wǎng)站名稱:Java多線程如何創(chuàng)建多個線程
分享鏈接:http://fisionsoft.com.cn/article/cceijdi.html


咨詢
建站咨詢
