初学 java线程

 
1. 当一个线程调用this.wait()操作时,必需有scynchronizedthis)操作,得到当前的锁,
Wait()操作后,它自动弃锁,以便有notify()动作去唤醒它,
如果,没有scynchronized动作,程序会出错:
 
java.lang.IllegalMonitorStateException: current thread not owner
at java.lang.Object.notifyAll(Native Method)
 
2. 但是如果进程,同时又有其他的资源锁,那它不会放弃这个锁,此时,调用这
锁的类
都会处于等待状态。
 For instance:
Class ->object c;
Class->object a;
Synchronized(c)
{
Synchronized(this)
{
Try{
This.wait();
}catch(InterruptedException e){}
}
}
 
//-------------------------------------------------------------------------------
在另一个class 里:
Class ->object b
Class ->object c(same to before c)
Synchronized(c)
{
 Synchronized(a)
 Try{
 b.notifyall();
}catch(Exception e){}
}
 
 这样第二个class就会处于关于class c的等待中。
3.进程的调度,并不是一个一个进程的去创建,而是有一个进程就可以了,
例如:(这个多用于网络的服务器监听客户的连接时,要用的机制)
  Class thread extends Thread{
   Int a=1;
   Public void run()
{
Int b=9
Whiletrue
{
b++;
System.out.println(b);
 
}
}
}
 
 
}
4. 更多的时候,进程的应有是为了程序的并行性。。
main 函数,在做一件事情,而同时,他要另一件事情,
 这时候,就要用进程的概念了。。。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值