(1)多线程的应用
多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。使用多线程带来的好处有:
a、可以把占据长时间的程序中的任务作为一个单独的线程放到后台去处理。而用户界面可以继续响应用户的操作。例如用户单击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度等。
b、加快程序的处理速度
c、在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,可以释放一些资源如内存占用等。
使用多线程带来的问题:
a、独占性系统资源的调度问题:
例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误。又例如,对于基本数据库应用的程序来说,可能使用一个线程来更新其用户数据库,而另一个线程用来读取数据库以响应用户的需要,极有可能数据库的线程读取的是未完成更新的数据库,因为可能在读的时候只有一部分数据被更新过。
(2)多线程的同步
概念:隶属于同一进程的各线程协调一致的工作称为线程的同步。
线程同步的基本思想就是避免多个线程对同一资源的访问,这个资源既可以是一个对象,又可以是一个方法或代码。线程的同步可以使用临界区、互斥量、信号量等方式实现。
08-26
08-26