多线程编程
来源:互联网 发布:java 泛型 静态 编辑:程序博客网 时间:2024/06/04 19:34
进程:资源分配的最小单元,担当分配系统资源的最小单元
Linux系统:多进程系统,并行性,互不干扰
线程:CPU调度和分派的基本单位,程序执行的最小单位。比进程更小的能独立运行的基本单位
一个进程由几个线程组成,线程与同属一个进程的其他线程共享进程拥有的全部资源
一个进程崩溃,不会对其他进程产生影响
一个线程死掉等于整个进程死掉,所以多进程比多线程健壮
但进行切换时,进程耗费资源大,效率差
进程有独立的地址空间,同一进程内的线程共享进程的地址空间
线程的优点:由于同一进程内的线程共享进程的地址空间,所以一个线程的数据可以直接被其他线程所用
创建:int pthread_create()
任何线程调用exit,整个进程终止
线程的正常退出有:
线程从启动例程中返回;
线程被另一个进程终止;
线程自己调用pthread_exit()
void pthread_exit(void *retval)
retval为线程退出返回值的指针
线程等待:pthread_join(tid, **rval);
阻塞调用线程,直至指定的线程终止
线程同步:
互斥量:本质上是锁
创建:int pthread_mutex_init(*mutex, *attr)
int pthread_mutex_destroy(*mutex)
加锁:int pthread_mutex_lock(*mutex,*attr)
解锁:int pthread_mutex_unlock(*mutex)
二值信号灯与互斥锁的区别:
互斥锁由获得锁的线程来释放,二值信号灯可以由其他线程释放
互斥锁初始值是1,二值信号灯初始值可能是0
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- 多线程编程
- mysql列的数值型,字符型,日期型
- 进程间通信方式
- Mysql数据库主从+Amoeba读写分离
- VS-C++的一些实用快捷键(望大家一起来补充)
- codeforces 892A. Greed
- 多线程编程
- 深究标准IO的缓存
- 外挂与程序猿伦理
- Android开发之录音MediaRecorder、播放音频(MediaPlayer、SoundPool)
- 网络编程(一)
- Mysql双机热备(linux下)
- Hibernate事务回滚问题
- C#获取本机IPv4地址
- Java语言规范基于JavaSE9 第七章 包和模块(四)