线程的概念:
先要分清线程和进程,还有线程和进程的关系,这也是java面试中经常涉及到的问题
狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。
进程相互之间是互相独立的。
线程是进程执行中最小的单位,一个进程至少包含一个线程。
多线程的安全问题:
多线程执行过程中,若不做安全处理,同时对同一数据进行修改,会导致并发的问题。当多个线程访问某个方法时,不管你通过怎样的调用方式或者说这些线程如何交替的执行,我们在主程序中不需要去做任何的同步,这个类的结果行为都是我们设想的正确行为,那么我们就可以说这个类是线程安全的。
有两种通用解决多线程安全问题的办法。
第一种是使用synchronize关键字,同步控制线程。synchronize(Object)对象锁,其他线程请求该对象时会等待直到持有对象锁得线程执行结束释放对象锁。
第二种是lock关键字
参考文章链接:https://mp.weixin.qq.com/s/BZ5zpxPgs3Y1rftCXoW8jw
网友评论