![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java multithreading
骑鱼的猫咪
这个作者很懒,什么都没留下…
展开
-
Java开启多线程的三种方法?
1.继承Thread类public class Demo1 { public static void main(String[] args) { myThread mt = new myThread(); //3.创建子类对象 mt.start(); //4.开启线程 for(int i = 0;i<10000;i++) { Sy...原创 2019-02-15 15:43:34 · 3402 阅读 · 0 评论 -
Callable与Runnable的区别,以及和线程池的组合使用
Callable接口:实现callable接口重写call方法是开启多线程的另一种办法,与Runnable的方法类似,但是有几点区别Callable定义的方法是call,而Runnable定义的方法是run Callable的call方法有返回值,而Runnable的run没有 Callable的call方法可以抛异常,但Runnable的run方法不可以抛异常线程池:短线程的开启和关闭...原创 2019-02-16 16:51:45 · 623 阅读 · 0 评论 -
启动线程时,start()和run()的区别是什么?
1.start()方法:用来启动线程,实现了多线程的运行,通过调用Tread类的start方法来启动一个线程,这时此线程处于就绪态,没有运行,当此条线程得到了cpu的时间片,就开始执行run方法,这里的run方法称为线程体,他包含了要执行这个线程的内容,run方法运行结束,线程终止。2.run方法就是一个普通的方法,如果直接调用run方法,他仅仅在主线程这条线程中执行。程序仍然顺序执行,执行完...转载 2019-02-16 17:49:20 · 1257 阅读 · 1 评论 -
synchronized与lock的区别?
lock是一个接口,而synchronized是Java关键字,synchronized是内置的语言实现。 synchronized在发生异常时,会自动释放锁对象,不会使程序出现死锁,lock发生异常,不会释放锁对象,需要在finally代码块中关闭锁对象(unlock()方法)。 lock可以让等待锁的线程响应中断,而synchronized不可以在等待锁对象时响应中断,必须等待完拿到锁对象...原创 2019-02-18 17:17:54 · 126 阅读 · 0 评论 -
简述Java中sleep()和wait()的区别以及notify()?
sleep()来自Thread类,wait(),notify()来自Object类。 当执行sleep的时候没有释放锁,而wait方法必须释放锁,使得其他线程可以使用同步代码块或方法,wait释放锁用notify唤醒;sleep不出让系统资源,wait出让系统资源,在线程等待池中等待。 wait,notify,notifyAll只能用在同步控制(同步控制方法或同步控制块),而sleep可以在任...原创 2019-02-18 17:55:49 · 457 阅读 · 0 评论