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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 狂飙的yellow.co 中级黑马   /  2013-6-1 10:26  /  1054 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

其中有这么一道试题
  1. public class ThreadDemo {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                
  8.                 new Thread(new Runnable() {
  9.                        
  10.                         @Override
  11.                         public void run() {
  12.                                 // TODO Auto-generated method stub
  13.                                 System.out.println("运行的是Runnable");
  14.                         }
  15.                 }){
  16.                         @Override
  17.                         public void run() {
  18.                                 // TODO Auto-generated method stub
  19.                                 System.out.println("运行的是Thread");;
  20.                         }
  21.                 }.start();
  22.         }

  23. }
复制代码
其中的运行的结果是“运行的是Runnable”还是“运行的是Thread开始你首先可能会是有点木,纠结答案到底是啥呢.....如果你的是 “运行的是Runnable”,那么你就大错特错了...结果是“运行的是Thread哈哈!!我来给大家讲一下这道题吧:
  1. new Thread(new Runnable() {
  2.                        
  3.                         @Override
  4.                         public void run() {
  5.                                 // TODO Auto-generated method stub
  6.                                 System.out.println("Runnable");
  7.                         }
  8.                 }){}.start();
复制代码
其中这个是一任务为主当写了复写了Thread类后
  1. new Thread(){public void run() {
  2.                         System.out.println("Thread");
  3.                 };}.start();
复制代码
————————————————潇洒的分割线—————————————————————下一题:请问一下,下面的代码,有错误码,如果有,请改正。
  1. class Text implements Runnable{
  2.         @Override
  3.         public void run(Thread t) {
  4.                 // TODO Auto-generated method stub
  5.         }
  6. }
复制代码
哥们,你想如果没有问题,他会白痴的问你错误吗? 这就是传说中的此地无银三百两。但是哥们,知道错在哪儿吗??我但是遇到这个问题,也是有点不知所措了,后来灵感来了》一看 错误在第一行,Runnable 是抽象方法,需要被abstract 修饰。————————————————潇洒的分割线—————————————————————在来一枚神题:写一个死锁这个题可是挂了好多的英雄啊
  1. package com.yellowcong;

  2. public class ThreadDemo {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                 new Thread(new Test(true)).start();//其中这个调用的
  9.                 new Thread(new Test(false)).start();
  10.         }
  11. }

  12. //定义两个对象来做锁,其中利用了对象调用了锁,不释放来进行死锁
  13. final class Lock {
  14.         public static final Object Lock_1 = new Object();
  15.         public static final Object Lock_2 = new Object();
  16. }

  17. class Test implements Runnable{
  18.         boolean flag;
  19.        
  20.         public Test(boolean flag){ // 使用够着函数,初始化函数
  21.                 this.flag = flag ;
  22.         }
  23.        
  24.         public void run(){
  25.                 if(flag){
  26.                         synchronized (Lock.Lock_1) {
  27.                                 System.out.println("lock _1");
  28.                                 synchronized (Lock.Lock_2) {
  29.                                         System.out.println("lock _2");
  30.                                 }
  31.                         }
  32.                 }else{//如果不为真
  33.                         synchronized (Lock.Lock_2) {//同步代码
  34.                                 System.out.println("lock_2___________________");
  35.                                 synchronized (Lock.Lock_1) {//同步代码块
  36.                                         System.out.println("lock_1_________________");
  37.                                 }
  38.                         }
  39.                 }
  40.                
  41.         }
  42.        
  43. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

1 个回复

倒序浏览
对于这种身体,只能远观,而不可亵玩焉
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马