在linux书上看到,多线程编程需要防止同时访问同一数据,保证数据读写安全。
1.运行一个进程中的多个线程,彼此之间使用相同的地址空间,***享大部分数据。
2.启动一个线程所花费的空间远远小于启动一个进程所话费的空间。
3.线程间切换所需要的时间远远小于进程间切换所需要的时间。
4.不同进程具有独立的数据空间,数据的传递只能通过通信的方式。--费时、不方便
统一进程下的线程之间***享数据空间,一个线程数据可以直接为其他线程所用。--快捷、方便
5.编写多线程需要注意的地方:
有的变量不能同时被两个线程所修改
子程序中声明为static的数据可能为多线程带来灾难性打击
6.多线程优点:
1)提高应用程序相响应,将耗时长的操作置于一个新的线程,避免等待。
2)使CPU多核系统更加高效。
3)改善程序结构。将长而复杂的进程可以分为多个线程。
7. 进程是资源分配的基本单位,线程没什么资源。***享进程资源
8. volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.