Java多线程如何解决关键字封锁问题
Java多线程需要我们不断的进行完善 相关的技术如何才能更好的使用 在这个问题上不少开发者和使用者都很关心 下面我们先来看看如何才能更好的学习Java多线程的使用方法
实例方法中加入sychronized关键字封锁的是this对象本身 而在静态方法中加入sychronized关键字封锁的就是类本身 静态方法是所有类实例对象所共享的 因此Java多线程对象在访问此静态方法时是互斥访问的 从而可以实现线程的同步 代码如下所示
代码
package vista;
class MyThread implements java lang Runnable
{
private int threadId;
public MyThread(int id)
{
this threadId = id;
}
@Override
public void run()
{
taskHandler(this threadId);
}
private static synchronized void taskHandler(int threadId)
{
for (int i = ; i < ; ++i)
{
System out println( Thread ID: + threadId + : + 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();
Thread sleep( );
}
}
}
lishixinzhi/Article/program/Java/gj/201311/27311
绛旓細鏃㈢劧濡傛锛Java 涓哄暐杩樿鎻愪緵 volatile 鍏抽敭瀛鍛紵杩欏苟闈炲浣欑殑瀛樺湪锛屽湪鏌愪簺鍦烘櫙涓嬪彧闇瑕佽涓鑷存х殑璇濓紝杩欎釜鍏抽敭瀛楀氨鑳藉婊¤冻闇姹傝屼笖鎬ц兘鐩稿杩樹笉閿欙紝鍥犱负鍏朵粬鐨勮兘澶熶繚璇佲滆鍐欌濋兘涓鐩寸殑鍔炴硶锛屽澶氬皯灏戝瓨鍦ㄤ竴浜涚壓鐗层2.2.鍐欎竴鑷存 Java 鎻愪緵浜嗕笁绉嶆柟寮忔潵淇濊瘉璇诲啓涓鑷存э紝鍒嗗埆鏄簰鏂ラ攣銆佽嚜鏃嬮攣銆绾跨▼...
绛旓細涓ょ鏂规硶锛1 缁ф壙Thread绫伙紝閲嶅啓public void run()鏂规硶 2 瀹炵幇Runnable鎺ュ彛锛岄噸鍐檙un鏂规硶;
绛旓細澶氱嚎绋 浠涔堟槸绾跨▼锛熻嫳鏂囷細Thread 姣忎釜姝e湪绯荤粺涓婅繍琛岀殑绋嬪簭閮芥槸涓涓繘绋嬨傛瘡涓繘绋嬪寘鍚竴鍒板涓嚎绋嬨傝繘绋嬩篃鍙兘鏄暣涓▼搴忔垨鑰呮槸閮ㄥ垎绋嬪簭鐨勫姩鎬佹墽琛屻傜嚎绋嬫槸涓缁勬寚浠ょ殑闆嗗悎锛屾垨鑰呮槸绋嬪簭鐨勭壒娈婃锛屽畠鍙互鍦ㄧ▼搴忛噷鐙珛鎵ц銆備篃鍙互鎶婂畠鐞嗚В涓轰唬鐮佽繍琛岀殑涓婁笅鏂囥傛墍浠ョ嚎绋嬪熀鏈笂鏄交閲忕骇鐨勮繘绋嬶紝瀹冭礋璐e湪鍗曚釜...
绛旓細Java瀵澶氱嚎绋鐨勬敮鎸佹槸闈炲父寮哄ぇ鐨勶紝浠栧睆钄芥帀浜嗚澶氱殑鎶鏈粏鑺傦紝璁╂垜浠彲浠ヨ交鏉剧殑寮鍙戝绾跨▼鐨勫簲鐢ㄧ▼搴忋侸ava閲岄潰瀹炵幇澶氱嚎绋嬶紝鏈2涓柟娉曠户鎵 Thread绫 classMyThreadextendsThread{publicvoidrun(){//杩欓噷鍐欎笂绾跨▼鐨勫唴瀹箎publicstaticvoidmain(String[]args){//浣跨敤杩欎釜鏂规硶鍚姩涓涓嚎绋(newMyThread())....
绛旓細Java澶氱嚎绋鐨勫垱寤哄強鍚姩 Java涓嚎绋鐨勫垱寤哄父瑙佹湁濡備笁绉嶅熀鏈舰寮 1.缁ф壙Thread绫,閲嶅啓璇ョ被鐨剅un()鏂规硶銆 澶嶅埗浠g爜 1 class MyThread extends Thread { 2 3 private int i = 0; 4 5 @Override 6 public void run() { 7 for (i = 0; i < 100; i++) { 8 System.out.println(Thread.currentThrea...
绛旓細java涓,绾跨▼瀹夊叏鐨瑙e喅鏂规硶鎴栬繃绋: 1.濡傛灉瀵硅薄鏄痠mmutable,鍒欐槸绾跨▼瀹夊叏鐨,渚嬪:String,鍙互鏀惧績浣跨敤銆 2. 濡傛灉瀵硅薄鏄嚎绋嬪畨鍏ㄧ殑,鍒欐斁蹇冧娇鐢ㄣ 3.鏈夋潯浠剁嚎绋嬪畨鍏,瀵逛簬Vector鍜孒ashtable涓鑸儏鍐典笅鏄嚎绋嬪畨鍏ㄧ殑,浣嗘槸瀵逛簬鏌愪簺鐗规畩鎯呭喌,闇瑕侀氳繃棰濆鐨剆ynchronized淇濊瘉绾跨▼瀹夊叏銆4.浣跨敤synchronized鍏抽敭瀛銆 浠涔堟槸绾跨▼瀹夊叏,...
绛旓細闆跺熀纭瀛︿範java鍙寜鐓ц繖浠藉ぇ绾叉潵杩涜瀛︿範 绗竴闃舵锛欽ava涓撲笟鍩虹璇剧▼ 闃舵鐩爣锛1. 鐔熺粌鎺屾彙Java鐨勫紑鍙戠幆澧冧笌缂栫▼鏍稿績鐭ヨ瘑 2. 鐔熺粌杩愮敤Java闈㈠悜瀵硅薄鐭ヨ瘑杩涜绋嬪簭寮鍙 3. 瀵笿ava鐨勬牳蹇冨璞″拰缁勪欢鏈夋繁鍏ョ悊瑙 4. 鐔熺粌搴旂敤JavaAPI鐩稿叧鐭ヨ瘑 5. 鐔熺粌搴旂敤JAVA澶氱嚎绋鎶鏈 6. 鑳界患鍚堣繍鐢ㄦ墍瀛︾煡璇嗗畬鎴愪竴涓」鐩 鐭...
绛旓細鍦ㄤ娇鐢≧unnable鐨勬椂鍊欓渶瑕佸厛new涓涓疄鐜癛unnable鐨勫疄渚嬶紝涔嬪悗鍚姩Thread鍗冲彲銆俆est impelements Runnable;Test t = new Test();Thread test = new Thread(t);test.start();鎬荤粨锛歍hread鍜孯unnable鏄疄鐜java澶氱嚎绋鐨2绉嶆柟寮忥紝runable鏄帴鍙o紝thread鏄被锛屽缓璁娇鐢╮unable瀹炵幇java澶氱嚎绋嬶紝涓嶇濡備綍锛屾渶缁堥兘...
绛旓細绾跨▼鏄繘绋嬩腑鐨勪竴涓疄浣擄紝鏄绯荤粺鐙珛璋冨害鍜屽垎娲剧殑鍩烘湰鍗曚綅銆傜嚎绋嬭嚜宸卞熀鏈笂涓嶆嫢鏈夌郴缁熻祫婧愶紝浣嗗畠鍙互涓庡悓灞炰竴涓繘绋嬬殑鍏朵粬绾跨▼鍏变韩杩涚▼鎵鎷ユ湁鐨勫叏閮ㄨ祫婧愩傛墍浠ョ嚎绋嬫槸杞婚噺绾х殑浠诲姟锛屽畠浠箣闂寸殑閫氫俊鍜岃浆鎹㈠彧闇瑕佽緝灏忕殑绯荤粺寮閿銆侸ava鏀寔澶氱嚎绋缂栫▼锛屽洜姝ょ敤Java缂栧啓鐨勫簲鐢ㄧ▼搴忓彲浠ュ悓鏃舵墽琛屽涓换鍔°Java鐨勫...
绛旓細Java 缁澶氱嚎绋缂栫▼鎻愪緵浜嗗唴缃殑鏀寔銆 涓鏉$嚎绋嬫寚鐨勬槸杩涚▼涓竴涓崟涓椤哄簭鐨勬帶鍒舵祦锛屼竴涓繘绋嬩腑鍙互骞跺彂澶氫釜绾跨▼锛屾瘡鏉$嚎绋嬪苟琛屾墽琛屼笉鍚岀殑浠诲姟銆傛柊寤虹姸鎬:浣跨敤 new 鍏抽敭瀛鍜 Thread 绫绘垨鍏跺瓙绫诲缓绔嬩竴涓嚎绋嬪璞″悗锛岃绾跨▼瀵硅薄灏卞浜庢柊寤虹姸鎬併傚畠淇濇寔杩欎釜鐘舵佺洿鍒扮▼搴 start() 杩欎釜绾跨▼銆傚氨缁姸鎬:褰撶嚎绋...