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

Linux多线程编程

一:Linux多线程编程:
        线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。
  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。
  使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,总的说来,一个进程的开销大约是一个线程开销的30倍左右,当然,在具体的系统上,这个数据可能会有较大的区别。
  使用多线程的理由之二是线程间方便的通信机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。线程则不然,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。当然,数据的共享也带来其他一些问题,有的变量不能同时被两个线程所修改,有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击,这些正是编写多线程程序时最需要注意的地方。
  除了以上所说的优点外,不和进程比较,多线程程序作为一种多任务、并发的工作方式,当然有以下的优点:
  1) 提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,将耗时长的操作(time consuming)置于一个新的线程,可以避免这种尴尬的情况。
  2) 使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。
  3) 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运


相关文档:

linux下mysql5安装日志

step 1)下载源代码包到本地Linux主机,然后解压缩,进入该目录,进行配置,编译和安装
下载mysql5源码mysql-5.0.18.tar.gz到目录/usr/local
cd /usr/local
tar xzvf mysql-5.0.18.tar.gz
cd mysql-5.0.18
./configure --prefix=/usr/local/mysql
make && make install
make过程花的时间比较长
step 2)配置 ......

Linux Kernel学习笔记

Linux Kernel学习笔记
Table of Contents
1. 存储器寻址
2. 设备驱动程序开发
3. 字符设备驱动程序
3.1. 设备号
3.2. 设备号的分配和释放
3.3. 重要的数据结构
3.4. 读和写
4. PCI设备
5. 内核初始化优化宏
6. 访问内核参数的接口
7. 内核初始化选项
8. 内核模块编程
8.1. 入门
8.2. 为模块添加 ......

Linux图形化历程

Linux图形化历程
    注:此段文章综合了众多资料,主要引用个人电脑的文章
   
    谈起OPIE,就不能不谈Qt,然而要对Qt有个来龙去脉的认识,需要从Linux
图形化说起。让我们回顾下Linux图形化界面发展的历史。
    Linux实际上是以UNIX为模板的,它继 ......

【linux】c++ 内存管理(二)

3. 指针与数组的比较
不同点:
      数组:要么在惊天存储区域被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命周期内保持不变,只有数组的内容可以改变。
指针:可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号