【线程】同步线程和协作线程

  • 同步线程
    为解决多线程争用统一资源的争用问题,我们常用synchronized关键字修饰的方法来解决。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会锁住整个类。
  • 同步是多线程中的重要概念。同步的使用可以保证在多线程运行的环境中,程序不会产生设计之外的错误结果。同步的实现方式有两种,同步方法和同步块,这两种方式都要用到synchronized关键字。
  • 同步方法:

(1)同步块
代码实现:

package edu.xalead;

public class 吃包子 extends Thread {
   private 包子类 p = null;

   private String name = null;

   public 吃包子(包子类 p,String name){
       this.p = p;
       this.name = name;
   }

//   public synchronized void eat(){
//       //if (this.p.pack <= 0) break;
//       // synchronized (p) {
//           System.out.println(this.name + "吃第" + this.p.pack + "个包子");
//           this.p.pack--;
//
//   }
   public void run(){
     try {
       while(true) {
//            synchronized (p) {  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值