A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有如下代码,一个测试类 ,一个实现了Thread类的线程类
//这是线程类
  1. public class Lock extends Thread {
  2.         private int num = 50;

  3.         @Override
  4.         public void run() {
  5.                 while (true) {
  6.                         if (num > 0) {
  7.                                 method();
  8.                         }
  9.                 }
  10.         }

  11.         public synchronized void method() {
  12.                 System.out.println(Thread.currentThread().getName() + "正在显示:" + num--);
  13.         }
  14. }
复制代码


//这是测试类
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 // 创建线程
  4.                 Lock l_A = new Lock();
  5.                 Lock l_B = new Lock();

  6.                 l_A.setName("小明");
  7.                 l_B.setName("小强");

  8.                 l_A.start();
  9.                 l_B.start();
  10.         }
  11. }
复制代码
问题是:
1、同步函数的锁到底是什么?
2、如果是this。如果证明测试类中 两个线程 使用的是同一个this?
3、如果是同一个this,这个this又是谁?


3 个回复

倒序浏览
自己顶顶顶。。快来大鸟呀
回复 使用道具 举报
再顶顶。块来大神呀,help !!!
回复 使用道具 举报
新人来说说:
我看楼主这代码应该是不同步的吧 ,,this指当前对象,你这创建了两个对象线程,对象里的数据没有共享,两个对象各自执行自己的数据,所以涉及不到同步,添加同步感觉多余了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马