POSIX线程
-
什么是线程
- 线程是一个进程内部的一个控制序列。
- posix标准。
- 新创建的线程与创建者共享全局变量、文件描述符号、信号处理函数和当前目录状态。
-
线程的优点和缺点
- 创建线程要比创建进程代价要小。
- 让程序看起来同时在做两件事情。
- 多线程i调试要比较苦难。
- 对机器处理器要求比较高。
-
开启线程
- -lpthread链接线程池库。
- pthread_create 函数
- 定义如下
#include
int pthread_create(pthread_t *thread,pthread_attr_t *attr
,void*(*start_routine)(void*),void*arg)
-
- 一个简单的线程程序
#include#include#include#include#include
void *thread_function(void *arg);
char message[]= "hello pthread" ;
int main(){
int res ;
pthread_t a_thread ;
void *thread_reasult;
res = pthread_create(&a_thread,NULL,thread_funciton,(void*)message) ;
if(res !=0){
perror("thread creation failed .");
exit(EXIT_FAILURE);
}
printf("waiting for thread to finish ...");
res = phread_join(a_thread,&thread_result);
if(res !=0){
perror("thread join failed .");
exit(EXIT_FAILURE);
}
printf("thread join , it retured %s ",(char*)thread_result);
p服务器托管网rintf("message is now %s",message);
exit(EXIT_SUCCESS) ;
}
void *thread_function(void *arg){
printf("thread_function is running . argument was %s n", (char*)arg);
sleep(3) ;
strcpy(message,"byte . ");
pthread_exit("thank you for the cpu time . ");
}
-
同步
- 用信号量进行同步
- 用互斥量进行同步
-
线程属性
- 脱离线程(pthread_detach方法创建)detachedstate schedpolicyschedparaminheritschedscopestacksize
- 线程调度 sched_get_priority_max 和sched_get_priority_min 这两个函数来查找可用的优先级级别。
-
取消一个线程
- 线程终止函数 : int pthread_setcancelstate(int state , in服务器托管网t * oldstate) ;
-
多线程
- 代码示例
-
小结
- 进程/多线程概念。如何开启进程,开启线程。线程同步,共享。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
文章目录 构建一个最新版本 Maven 项目 1. 所用各种软件的版本 2. 踩过的坑 3. 构建项目过程 4. 项目打包方式 构建一个最新版本 Maven 项目 截止 2024 年 1 月 13 日,Apache 官网上 Maven 的最新安全版本为 3.9…