Java多線程如何創(chuàng)建多個線程
Java多線程的同步依靠的是對象鎖機制,這個問題需要我們不斷的學習相關(guān)的問題。下面我們就來詳細的學習下如何才能更好的進行具體內(nèi)容的使用。synchronized關(guān)鍵字的背后就是利用了封鎖來實現(xiàn)對共享資源的互斥訪問。
下面以一個簡單的實例來進行對比分析。實例要完成的工作非常簡單,就是創(chuàng)建10個線程,每個線程都打印從0到99這100個數(shù)字,我們希望線程之間不會出現(xiàn)交叉亂序打印,而是順序地打印。
先來看***段代碼,這里我們在run()方法中加入了synchronized關(guān)鍵字,希望能對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多線程的詳細代碼介紹。
【編輯推薦】