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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不似侽紸角. 中级黑马   /  2014-5-30 20:13  /  747 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 不似侽紸角. 于 2014-6-2 19:33 编辑

今天在复习多线程的时候发现了一个问题,希望大家帮忙说下
为什么在死锁中用不了this.getName()方
  1. <p>public class DeadLockTest {

  2.         public static void main(String[] args) {
  3.                 Thread t1 =new Thread(new Test(true));
  4.                 Thread t2 =new Thread(new Test(false));
  5.                 t1.start();t2.start();
  6.         }

  7. }
  8. class Test implements Runnable{
  9.         private boolean flag;
  10.         Test(boolean flag){
  11.                 this.flag=flag;
  12.         }
  13.         @Override
  14.         public void run() {
  15.                 if(flag){
  16.                         synchronized(Lock.locka){</p><p>//System.out.println(this.getName()+"----"+"if----a"); 为什么这里不能用this.getName()?而在其他时候可以用?
  17.            System.out.println(Thread.currentThread().getName()+"----"+"if----a");
  18.                                 synchronized(Lock.lockb){
  19.                                         System.out.println(Thread.currentThread().getName()+"----"+"if----b");
  20.                                 }
  21.                         }
  22.                 }else{
  23.                         synchronized(Lock.lockb){
  24.                                 System.out.println(Thread.currentThread().getName()+"----"+"else-----b");
  25.                                 synchronized(Lock.locka){
  26.                                         System.out.println(Thread.currentThread().getName()+"----"+"else-----a");
  27.                                 }
  28.                         }
  29.                 }
  30.         }
  31. }
  32. class Lock{
  33.         static Object locka =new Object();
  34.         static Object lockb =new Object();
  35. }</p>
复制代码

法  

嗯 知道了这个不是Thread类所以不能用。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

1 个回复

倒序浏览
this.getName()这样获取的是本类对象的名字,在API中是没有这样的方法的
this代表是本类创建的对象

而你要的是本线程的名字

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马