JAVA!!!

 我来答
但微兰牛昭
2010-12-19 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:998万
展开全部
概括起来说,Java
多线程同步机制主要包含如下几点:
1:如果一个类包含一个或几个同步方法,那么由此类生成的每一个对象都配备一个队列用来容纳那些等待执行同步的线程。
2:对于一个线程来说,有两种途径会使其进入等待队列,一种是在其他线程调用含有同步方法的对象时,此线程正在调用这个对象的方法,另一种方法是此线程调用了
wait()
方法。
3:当一个线程从一个同步方法调用返回时,或者调用
wait()
方法时,其他线程就可以访问此对象。
4:作为总的原则,系统总是使队列中拥有最高级优先级的线程获得运行机会。
5:如果一个线程由于调用
wait()
方法而进入等待队列,那么,它必须由别的线程通过调用notify()
方法来唤醒它,才能安排它重新执行。
不可否认,上面列出的几个原则有些繁杂,但在实际处理中其实很简单,只要按照下列三条规则就可以了。
一:如果两个或多个线程修改一个对象,那么将执行修改操作的方法用关键字
synchronized
定义为同步方法。
二:如果一个线程必须等待某个对象的状态被改变,那么,此线程应在对象队列中等待,这种等待是通过进入同步方法或者调用wait()
方法来实现的。
三:每当一个方法修改了某个对象的状态的时候,这个方法就应该再调用
notify()
方法,这样给那些处于等待队列中的线程一个机会,使其能够检测环境是否已经发生了改变,从而可使其重新运行。
另补:同步机制的特点和功能是很突出的,但是他并不能解决多线程系统中的全部问题,特别是
死锁
问题,比如
银行系统是的进入帐户问题。当一个程序在运行的时候出现了死锁,Java
系统是无能无力的。所以,用户
自己设计线程的时候,要确保不出现死锁。同步问题和死锁的避免问题是有相当难度的课题哟。得花时间
好好学学。
Trackback
:
http://tb.blog.csdn.net/TrackBack.aspx?PostId=1966245
娄增岳卞女
2010-12-22 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:27%
帮助的人:744万
展开全部
java的同步机制在解决不同线程存取同一个数据时可能出现的安全性问题,比如:火车买票系统,假如总剩余票数为NUM=1,同一时刻多个人都买票即多个线程同时用这个数,在系统的判定中if(NUM>=0)
NUM--;
中会使NUM连续同一时间减少三次,导致无票也能卖出票的情况,而同步机制使同一时间仅有一个线程能对些数据进行存取,并且在其存取期间不允许其它线程用NUM。
唤醒机制:可灵活控制线程的休眠时间
多线程周期:就是它活跃的一个时间段
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式