易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux操作系统下的多线程编程详细解析

线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统

去,是在80年代中期,solaris
是这方面的佼佼者。传统的Unix

支持线程的概念,但是在一个进程
(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所
支持,包括Windows/NT,当然,也包括Linux

  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么
的系统应该选用多线程?我们首先必须回答这些问题。
  使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们
知道,在Linux系统
下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和
数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间
远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,总的说来,一个进程的开销大约是一个线程
开销的30倍左右,当然,在具体的系统上,这个数据可能会有较大的区别。
  使用多线程的理由之二是线程间方便的通信

制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。线程则不然,由于同一进程下的
线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。当然,数据的共享也带来其他一些问题,有的变量不能同时被两个
线程所修改,有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击,这些正是编写多线程程序时最需要注意的地方。
 
 除了以上所说的优点外,不和进程比较,多线程程序作为一种多任务、并发的工作方式,当然有以下的优点:
  1)
提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多
线程技术,将耗时长的操作(time consuming)置于一个新的线程,可以避免这种尴尬的情况。
  2) 使多CPU

统更加有效。操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。
  3)
改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的


相关文档:

linux双网卡网段网关流控配置

这个问题困扰我至少2个星期了,反反复复查了很多资料,今天终于能配置完成,现在要写下来激动啊,差点就气馁了。
要求:我想做ipp2p的流量控制测试,所以要在公司内部搭建一个测试环境。在我同公司的网之间搭建一台双网卡的linux机器,具体硬件架设图是这样的
互联网
|
公司的内部网段192.168.4.0(网关是192.168.4.1)
......

Linux 内存绑定在局部存储器的实现


3.2.1 Linux 内存绑定在局部存储器的实现总体步骤
总体步骤:
l         采用方案三,在在原来分析的基础上,以及已知Linux系统内存的初始化的情况,对内核代码进行修改,主要包括确定新区的范围,建立新区,重新对分配内存的分配机制进行设置。
l    &n ......

linux 如何进入图形界面

1.自启动:
在/etc/inittab文件中设置:
#   Default   runlevel.   (Do   not   set   to   0   or   6)
id:5:initdefault:
2.字符终端模式下启动x-windows:
startx ......

linux 下查看文件的编码格式及修改编码

从网上下了一些学习资料,都是文本文件,用 gedit 查看都是乱码,用vim可以正常显示,我知道这是 gedit没有添加相应支持的内码,我也不想加了,用vim还是多一点,但是如果要copy 到手机上可能也会乱码,最好保险的做法是把它转成标准的编码格式 utf-8.
首先我们如何知道文件的编码格式呢,在 vim 里 命令 :set fileencodin ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号