1. 多线程与进程的区别(优点)
1). 和进程相比,它是一种比较“节俭”的多任务操作方式。在Linux系统中,启动一个新的进程,必须分配给它独立到地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种昂贵的多任务工作方式。
2). 线程间方便的通信机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过进程间通信的方式进行,这种方式不仅费事,而且不方便。线程则不然,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其他线程所用,方便快捷。
3). 多线程程序作为一种多任务、并发的工作方式,有如下优点:
a). 使多CPU系统更加有效。操作系统会保证当线程数不大与CPU数目时,不同线程运行于不同的CPU之上。
b). 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改