在linux书上看到,多线程编程需要防止同时访问同一数据,保证数据读写安全。

1.运行一个进程中的多个线程,彼此之间使用相同的地址空间,***享大部分数据。

2.启动一个线程所花费的空间远远小于启动一个进程所话费的空间。

3.线程间切换所需要的时间远远小于进程间切换所需要的时间。

4.不同进程具有独立的数据空间,数据的传递只能通过通信的方式。--费时、不方便

统一进程下的线程之间***享数据空间,一个线程数据可以直接为其他线程所用。--快捷、方便

5.编写多线程需要注意的地方:

有的变量不能同时被两个线程所修改

子程序中声明为static的数据可能为多线程带来灾难性打击

6.多线程优点:

1)提高应用程序相响应,将耗时长的操作置于一个新的线程,避免等待。

2)使CPU多核系统更加高效。

3)改善程序结构。将长而复杂的进程可以分为多个线程。

7. 进程是资源分配的基本单位,线程没什么资源。***享进程资源

8. volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.