其中有这么一道试题
- public class ThreadDemo {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
-
- new Thread(new Runnable() {
-
- @Override
- public void run() {
- // TODO Auto-generated method stub
- System.out.println("运行的是Runnable");
- }
- }){
- @Override
- public void run() {
- // TODO Auto-generated method stub
- System.out.println("运行的是Thread");;
- }
- }.start();
- }
- }
复制代码其中的运行的结果是“运行的是
Runnable”还是“运行的是Thread”开始你首先可能会是有点木,纠结答案到底是啥呢
.....如果你的是 “运行的是
Runnable”,那么你就大错特错了...结果是“运行的是
Thread”哈哈!!我来给大家讲一下这道题吧:
- new Thread(new Runnable() {
-
- @Override
- public void run() {
- // TODO Auto-generated method stub
- System.out.println("Runnable");
- }
- }){}.start();
复制代码其中这个是一任务为主当写了复写了
Thread类后- new Thread(){public void run() {
- System.out.println("Thread");
- };}.start();
复制代码————————————————潇洒的分割线—————————————————————下一题:请问一下,下面的代码,有错误码,如果有,请改正。
- class Text implements Runnable{
- @Override
- public void run(Thread t) {
- // TODO Auto-generated method stub
- }
- }
复制代码哥们,你想如果没有问题,他会白痴的问你错误吗? 这就是传说中的此地无银三百两。但是哥们,知道错在哪儿吗??我但是遇到这个问题,也是有点不知所措了,后来灵感来了》一看 错误在第一行,
Runnable 是抽象方法,需要被abstract 修饰。————————————————潇洒的分割线—————————————————————在来一枚神题:写一个死锁这个题可是挂了好多的英雄啊
- package com.yellowcong;
- public class ThreadDemo {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- new Thread(new Test(true)).start();//其中这个调用的
- new Thread(new Test(false)).start();
- }
- }
- //定义两个对象来做锁,其中利用了对象调用了锁,不释放来进行死锁
- final class Lock {
- public static final Object Lock_1 = new Object();
- public static final Object Lock_2 = new Object();
- }
- class Test implements Runnable{
- boolean flag;
-
- public Test(boolean flag){ // 使用够着函数,初始化函数
- this.flag = flag ;
- }
-
- public void run(){
- if(flag){
- synchronized (Lock.Lock_1) {
- System.out.println("lock _1");
- synchronized (Lock.Lock_2) {
- System.out.println("lock _2");
- }
- }
- }else{//如果不为真
- synchronized (Lock.Lock_2) {//同步代码
- System.out.println("lock_2___________________");
- synchronized (Lock.Lock_1) {//同步代码块
- System.out.println("lock_1_________________");
- }
- }
- }
-
- }
-
- }
复制代码