多线程:概念

什么是进程、线程?它们之间的区别是什么?

1.进程是操作系统中的单位,1个进程指操作系统中在运行的一个客户端/应用

2.线程是客户端/应用中的单位,是进程的执行路径

3.区别:

进程间相互独立,有独立地址空间,同一进程内的多个线程会共享部分状态, 多个线程可以读写同一块内存(一个进程无法直接访问另一进程的内存)。

进程可以有多个线程

 

什么是同步、异步、并发?

同步:同一任务资源下多个线程按照任务资源执行的先后顺序进行执行

异步:任务资源脱离原有的瀑布式执行流程,交给另外一个线程执行,而当前执行任务的线程跳过该任务资源按照瀑布式执行流程继续执行

并发:同一任务资源下按照任务资源执行的先后顺序由多个cpu进行支撑同时执行多个任务块

 

什么是守护线程?

在有线程运行的情况下进行运行的线程

 

创建线程有哪几种方式?

1、实现Runnable接口并实现run方法

2、继承Thread接口重写run方法

3、创建Thread对象时候通过匿名内部类实现

4、使用Callable和Future创建线程

 

runnable 和 callable 有什么区别?

1、接口定义不同,callable可以有返回值(泛型),runnable不能有返回值

2、callable的cell()方法能够抛出异常,runnable的run()方法只能内部消化

 

线程有哪几种状态?

新建 、等待运行、执行中、阻塞、死亡

 

sleep() 和 wait() 有什么区别?

1.sleep是Thread的方法,wait是Object的方法

2.sleep()方法导致了程序暂停执行指定的时间,让出cpu调度给其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。

而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备,获取对象锁进入运行状态。

 

notify和notifyAll有什么区别?

https://blog.csdn.net/djzhao/article/details/79410229

 

Thread.run方法和Thread.start方法的区别?

1.方法定义不同:start()方法在java.lang.Thread类中定义;而run()方法在java.lang.Runnable接口中定义,必须在实现类中重写

2.方法定义的含义不同:run方法相当于线程的任务处理逻辑的入口方法,start方法的作用是启动相应的线程

 

创建线程池有哪几种方式?

https://blog.csdn.net/baidu_32492845/article/details/78621415    

https://blog.csdn.net/hhx0626/article/details/52957818

 

线程池有哪几种状态?

https://blog.csdn.net/shahuhubao/article/details/80311992

https://blog.csdn.net/hhx0626/article/details/52957818

 

线程池中 submit()和 execute()方法有什么区别

https://www.cnblogs.com/liuchuanfeng/p/6956014.html

https://blog.csdn.net/hhx0626/article/details/52957818

 

在 java 程序中怎么保证多线程的运行安全?

https://blog.csdn.net/weixin_40459875/article/details/80290875

https://blog.csdn.net/michaelehome/article/details/80226205

 

多线程锁的升级原理是什么?

https://blog.csdn.net/always_younger/article/details/79462684

 

什么是死锁?该如何避免?

https://www.cnblogs.com/hadoop-dev/p/6899171.html

 

ThreadLocal 是什么?有哪些使用场景?

https://www.cnblogs.com/yxysuanfa/p/7125761.html

 

synchronized 底层实现原理

https://www.cnblogs.com/paddix/p/5367116.html

 

synchronized 和 volatile 的区别是什么?

https://www.cnblogs.com/kaleidoscope/p/9506018.html

 

synchronized 和 Lock 有什么区别

https://www.cnblogs.com/iyyy/p/7993788.html

 

synchronized 和 ReentrantLock 区别是什么?

https://www.cnblogs.com/fanguangdexiaoyuer/p/5313653.html

 

atomic 的原理是?

https://blog.csdn.net/wuzhiwei549/article/details/82621947

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章