linux api笔记(3):线程(一)
本文中将讲述linux环境编程中线程的使用。不说废话直接上代码:
#include <pthread.h>
#include <assert.h>
struct ThreadData
{
int i;
};
void * ThreadProc(void* arg)
{
ThreadData* data = static_cast<ThreadData*>(arg);
//do something
pthread_exit(data);
}
int main()
{
pthread_t thread_handle = 0;
ThreadData *data = new ThreadData;
//create thread
pthread_create(&thread_handle, NULL, ThreadProc, data);
//wait the created thread finished
ThreadData * out_data = NULL;
pthread_join(thread_handle, (void**)&out_data);
assert(out_data == data);
delete (out_data);
return 0;
}
上面的代码主要有3个线程操作的系统调用,一般情况下这3个就够我们用了。
pthread_create:创建线程。第一个参数是out参数,它输出了创建好的线程的
标志符-线程ID。第二参数是用来设置线程的属性的,后面会有讲解。第三个参数是
一个函数指针,这个指针指向的函数在线程创建成功之后再新的线程中执行。第四个
参数是一个指针,这个指针在第三个参数指向的函数执行时传入这个函数中。
pthread_exit:在线程退出之前使用,这个函数有一个参数,是指针,这个指针
在pthread_join的时候将被收到。这个函数必须在线程内部使用(其实我们只要看到
它没有pthread_t类型的参数我们就知道只能在线程内使用)。
pthread_join:第一个参数是pthread_t,说明这个函数不是在对应的线程内使用
的。在调用这个函数后,调用者(某个线程)将被阻塞,并且一直等待,直到第一个参数
对应的线程中止,对应线程终止之后这个函数将返回。pthread_join的第二个参数是一个
指针的指针类型,out参数,函数结束后它指向了pthread_exit函数输入的第二个参数。
本文中介绍的3个函数的使用其实是一些最基本的使用,其中并没有涉及到一些细节
和注意事项,后面的文章中我会结合man手册陆续补上。
相关文档:
du -sh xmldb/
du -sm * | sort -n //统计当前目录大小 并安大小 排序
du -sk * | sort -n
du -sk * | grep guojf //看一个人的大小
du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字
查看此文件夹 ......
该如何修
复linux引导呢?在从装xp后?我分享一下我的经验:我是用光盘安装红旗6.0的,首先将光盘放入光驱,现在的电脑一般都支持从光驱启动,然后重启电
脑这时会出现红旗的安装界面,下面还有boot:的字样这时,我按f5,进入linux
rescue界面就是linux修复界面,接着按回车键,就会进入和开始安装界面一样的界面,
......
Linux系统下的多线程编程入门
2006-01-17 09:13作者:pcstudy出处:blogchina责任编辑:方舟
相关专题: Linux设备驱动程序开发入门
引言
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念 ......
最近准备学习一下操作系统原理,于是照例记录一些重要的东西。
1. 操作系统的功能
从资源管理的角度来看,操作系统的功能一般分为5种:
1.1 存储管理
存储管理就是管理计算机有限的内存空间,包括:存储分配、存储安全和 ......
在Linux用c编程,很多时候都会碰到结构体这个概念,尤其是使用指针访问结构体成员。(下面的文字介绍,请参考代码理解)
1. 使用一个新运算符:->,这个运算符有一个连接号(-)后跟一个大于符号(>)组成
&nbs ......