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手册陆续补上。
相关文档:
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n   ......
折腾了大半天都终把tuxedo安装,并写好第一个例子,即然安装可以使用UI的方式进行安装,安装完成后要进行环境变量的配置,把tuxedo目录中的tux.env的配置,添加到/home/oracle/.bash_profile,因为我是以oracle用户来安装oracle 和tuxedo 的。
服务器端代码simpserv.c:
#include <stdio.h>
#include <ctyp ......
1,用ls只列出目录 ls -F | grep /$
2.查看进程
按内存从大到小排列
ps -e -o "%C : %p : %z : %a"|sort -k5 -nr
3.按cpu利用率从大到小排列
ps -e -o "%C : %p : %z : %a"|sort -nr
4.打印说cache里的URL
grep -r -a jpg /data/cache/* | ......
Linux系统下的多线程编程入门
2006-01-17 09:13作者:pcstudy出处:blogchina责任编辑:方舟
相关专题: Linux设备驱动程序开发入门
引言
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念 ......
最近准备学习一下操作系统原理,于是照例记录一些重要的东西。
1. 操作系统的功能
从资源管理的角度来看,操作系统的功能一般分为5种:
1.1 存储管理
存储管理就是管理计算机有限的内存空间,包括:存储分配、存储安全和 ......