线程练习题

1: 

1.画图说明线程的生命周期,以及各状态切换使用到的方法等
状态,方法

2: 

2.同步代码块中涉及到同步监视器和共享数据,谈谈你对同步监视器和共享数据的理解,以及注意点。
同步监视器: 可以是任意一个对象来操作也就是锁, 多个线程使用的都必须是同一个监视器

共享数据: 多个线程共同操作的数据 一个线程操作此数据 另一个都不能用了 synchronized{ 操作共享数据的代码}

3  sleep()wait()的区别

sleep() 让线程停止的时间 我们制定一个时间到了时间自动结束

wait() 是让线程阻塞, 需要被notify() 或者notifyAll()唤醒

使用不同sleep()是在Thread类中

wait()是在Object类中

4:写一个线程安全的懒汉式

public class lanhanTT {
    private lanhanTT(){};
    private static lanhanTT lanhanTT = null;
    public static  synchronized lanhanTT show (){
        if(lanhanTT == null){
            lanhanTT = new lanhanTT();
        }
            return lanhanTT;
    }
}

class lanhan{
    public static void main(String[] args) {
        lanhanTT l1 = lanhanTT.show();
        lanhanTT l2 = lanhanTT.show();
        System.out.println(l1);
        System.out.println(l2);

    }

}
懒汉线程安全模式

5 创建多线程有哪几种方式4

继承Thread 类
实现Runnable 接口
实现Callable接口

线程池 ExecutorService

猜你喜欢

转载自www.cnblogs.com/zhaoyunlong/p/11889897.html