Linux 多线程编程(一)
来源:互联网 发布:vue.js ide工具 编辑:程序博客网 时间:2024/06/02 03:11
Linux 多线程编程
线程(Thread)已被许多操作系统所支持,包括Windows/NT ,Linux
以前的多线程其实是多进程,而现在意味着一个进程中有多个线程
使用多线程的原因(多线程的优点):
1.“节省”,启动一个新的进程需要分配给它独立的地址空间,建立众多的数据表来维护他的代码段,堆栈段和数据段,这是一种“昂贵的多任务操作方式”。运行在一个进程中的多个线程,使用相同的地址空间,线程间彼此切换所需时间也远远小于进程切换的时间,线程开销极大的缩小。
2.线程间方便的通信机制。不同的进程具有独立的数据空间,进程间通信费时且不方便。而同一进程下的线程共享数据空间,所以一个线程的数据可以直接为其他线程所用,快捷而方便。
3.使CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。
4.改善程序结构。长而复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分。
Linux系统下的多线程遵循POSIX线程接口,编写程序,使用pthread.h头文件
创建线程
#include <pthread.h>
Int pthread_create(pthread_t *tidp, const pthread_attr_t *attr, void *(*start_rrtn)(void),void *arg)
tidp: 线程id
attr: 线程属性(通常为空)
start_rtn:线程要执行的函数
arg:start_rtn的
终止线程
线程正常退出方式:
线程从启动例程中返回
线程可以被另一个线程终止
线程自己调用跑pthread_exit函数
退出线程
void pthread_exit(void *rval_ptr) //rval_ptr 线程退出返回的指针
线程等待
int pthread_join(pthread_t tid,void**rval_ptr) //阻塞调用线程,直到指定的线程终止。
Tid :等待退出的线程id Rval_ptr:线程退出的返回值的指针
- Linux 多线程编程(一)
- Linux多线程编程(一)
- Linux 多线程编程(一)
- Linux多线程编程(一)
- Linux多线程编程(一)
- Linux 多线程编程(一)
- Linux多线程编程(一)
- Linux下多线程编程简介(一)
- linux 多线程编程指南(一)
- linux c 多线程编程练习(一)
- Linux多线程网络编程(一)
- Linux多线程编程(一)---多线程基本编程
- Linux多线程编程(一)---多线程基本编程
- Linux下的多线程编程一(系统编程)
- 多线程编程(一)
- 多线程编程(一)
- #多线程编程(一)
- 多线程编程(一)
- 开启binary log功能
- 06--IO流 Summary
- 全排列-字典序
- poj 3414 Pots
- javaweb中的Listener监听器
- Linux 多线程编程(一)
- solr高亮只显示部分字符串
- rotate object in matlab
- MVC简介以及java三成框架(java项目设计模式)
- php之读取csv文件!!!
- Access denied for user 'root'@'localhost' (using password: YES) 问题解决
- 一个游戏中玩家总经验值达到200就可以到达2级,达到400可以升到3级,达到600可升4级,达到800可升5级依此类推(玩家新创建的角色为0经验1级)。游戏中有一种超级经验丹,玩家1级的时候使用超级经
- C++中class和struct的区别
- 计算机二级考试C语言教程一