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 //看第二个/ 字符前的文字
查看此文件夹 ......
方法一:single mode
[code]1. 在 GRUB 選單畫面的時候,按 e
2. 找到這一行【kernel /vmlinuz-2.xxxxxxx ro root=/dev/hda2】按 e
3. 在這一行最後加上 single(要留一個空格再加 sing ......
1.安装包
# apt-get install nfs-kernel-server
2.编辑配置文件
# vim /etc/exports
输入 /home/myhome/work/ ......
系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname &nbs ......
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。
于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。
& ......