JAVA多线程

linux中fork--子进程是从哪里开始运行


通过在Thread的子类覆盖run()这个方法然后调用Thread的无参数构造函数(Thread t =new Thread())可以创建新的线程。


一旦Thread对象的run()方法完成之后,该Thread就不能在重新启动(即Thread.start()).

还有一点最重要的就是使用实现Runnable接口的方式创建的线程可以处理同一资源,从而实现资源的共享.


很容易误解锁是配在用synchronizedb标记的方法上,但事实上不是配在方法上的,而是配在对象上。

每个JAVA对象都有一个锁,每个锁只有一个钥匙。

如果对象有两个同步化的方法,就表示两个线程无法进入同一个方法,也表示两个线程无法进入不同的方法。

 

什么时候要同步化。

同步化的意义是指定某段工作要在不能分割的状态下执行


为程序段加上同步化的一些方法:1

1.直接在方法上声明public synchronized void fun(){程序段}

2.用synchronized块:


锁在类上(类级别的锁):

synchronized(A.class){

程序段

}


锁在对象上(对象级别的锁):

synchronized(new Object()或者this){

程序段

}


要让对象在线程上有足够的安全性,就要判断出那些指令不能被分割执行。







可见/访问性 在同一类中 同一包中 不同包中  同一包子类中  不同包子类中 
 public  yes  yes  yes  yes  yes
 protected   yes  yes  no  yes  yes
 package   yes  yes  no  yes  no
 private  yes  no  no  no  no

 


可见/访问性 在同一类中 同一包中 不同包中  同一包子类中  不同包子类中 
 public  yes  yes  yes  yes  yes
 protected   yes  yes  no  yes  yes
 package   yes  yes  no  yes  no
 private  yes  no  no  no  no

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值