首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

线程同步处置

2012-09-18 
线程同步处理线程同步被多个线程同时访问的资源叫做临界资源,当临界资源被多个线程同时访问的时候会出现一

线程同步处理


线程同步
被多个线程同时访问的资源叫做临界资源,当临界资源被多个线程同时访问的时候会出现一些隐患。
线程的同步就会为我们解决掉这一隐患。

下面列举一些多线程的隐患以及解决方法

public void run(){while(true){if(ticket>0){try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"窗口"+(ticket--)+"张票");}else{break;}}}
(只写了run方法里的代码)如果有两个线程同时执行会出现隔票或者出现0号票等问题

public void run(){while(true){//同步代码块synchronized(this){if(ticket>0){try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"窗口"+(ticket--)+"张票");}else{break;}}}}
加上synchronized的同步代码块就可以避免出现错误了也可以把方法利用synchronized改成同步函数也是可以避免的。(把synchronized加到void前面)

 

热点排行