概念题:进程与线程

来源:互联网 发布:mac 获取当前用户名 编辑:程序博客网 时间:2024/05/21 12:12

进程与线程区别与联系

  (1)   划分尺度:线程更小,所以多线程程序并发性更高;

  (2)   资源分配:进程是资源分配的基本单位,同一进程内多个线程共享其资源;

  (3)   地址空间:进程拥有独立的地址空间,同一进程内多个线程共享其资源;

  (4)   处理器调度:线程是处理器调度的基本单位;

  (5)   执行:每个线程都有一个程序运行的入口,顺序执行序列和程序的出口,但线程不能单独执行,必须组成进程,一个进程至少有一个主线程。简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

 

什么是“线程安全”

如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。
或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。
线程安全问题都是由全局变量及静态变量引起的。
若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。