
Linux线程编程
不怨天,不尤人
键盘上的手艺人
展开
-
Linux学习之多线程编程(线程的创建和生存周期)
言之者无罪,闻之者足以戒。 ——《诗序》Linux多线程编程:线程:一个正在执行的程序,它是资源分配的最小单位;进程中的事情需要按照一定的顺序逐个进行。那么什么是线程?线程:有时又称轻量级进程,程序执行的最小单位,系统独立调度和分析cpu的基本单位,它是进程中的一个实体。一个进程中可以有多个线程,这些线程共享进程的所有资源,线程本身只包含一点必不可少的资源。线程:(1)并发:...原创 2018-10-17 22:35:12 · 338 阅读 · 0 评论 -
Linux学习之多线程编程(线程的基本控制)
言之者无罪,闻之者足以戒。 ——《诗序》二、线程的基本控制1、终止进程:如果进程中的任意一个进程调用了exit、_exit、_Exit,那么整个进程就会终止普通的单个进程有以下3种退出方式,这样不会终止进程:(1)从启动例程中返回,返回值是线程的退出码(2)线程可以被同一个进程中的其他进程取消(3)线程调用pthread_exit(void *rval)函数,rval是...原创 2018-10-19 21:11:34 · 291 阅读 · 0 评论 -
Linux学习之多线程编程(线程的同步)
言之者无罪,闻之者足以戒。 ——《诗序》(三)、线程的同步1、互斥量当多个线程共享相同的内存时,需要每一个线程看到相同的视图。当一个线程修改变量时,而其他线程也可以读取或者修改这个变量,就需要对这些线程同步,确保他们不会访问到无效的变量。在变量修改时间多于一个存储器访问周期的处理器结构中,当存储器的读和写这两个周期交叉时,这种潜在的不一致性就会出现。当然这与处理器相关,但是在可移植...原创 2018-10-20 19:54:13 · 366 阅读 · 1 评论 -
Linux学习之多线程编程(Linux线程的高级控制)
言之者无罪,闻之者足以戒。 ——《诗序》三、Linux线程的高级控制1、一次性初始化有些事需要且只能执行一次(比如互斥量初始化)。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库函数时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始(pthread_once_t)会比较容易些。首先要定义一个pthread_once_t变量,这个变量要用...原创 2018-10-21 14:02:06 · 320 阅读 · 0 评论 -
Linux学习之多线程编程(线程的同步属性)
言之者无罪,闻之者足以戒。 ——《诗序》3、线程的同步属性 就像线程有属性一样,线程的同步互斥量也有属性,比较重要的是进程共享属性和类型属性。互斥量的属性用pthread_mutexattr_t类型的数据表示,当然在使用之前必须进行初始化,使用完成之后需要进行销毁:(1)、pthread_mutexattr_init互斥量的属性初始化函数int pthread_mutexattr_...原创 2018-10-21 18:27:59 · 583 阅读 · 0 评论 -
Linux学习之多线程编程(线程私有属性)
言之者无罪,闻之者足以戒。 ——《诗序》4、线程私有属性应用程序设计中有必要提供一种变量,使得多个函数多个线程都可以访问这个变量(看起来是个全局变量),但是线程对这个变量的访问都不会彼此产生影响(貌似不是全局变量哦),但是你需要这样的数据,比如errno。那么这种数据就是线程的私有数据,尽管名字相同,但是每个线程访问的都是数据的副本。在使用私有数据之前,你首先要创建一个与私有数据相关的...原创 2018-10-21 21:56:12 · 526 阅读 · 0 评论 -
Linux学习之多线程编程(简单TCP服务器的创建)
言之者无罪,闻之者足以戒。 - “诗序”四,Linux的的多线程综合练习线程:有时又称轻量级进程,程序执行的最小单位,系统独立调度和分派CPU的基本单位,它是进程中的一个实体一个进程中可以有多个线程,这些线程共享进程的所有资源,线程本身只包含一点必不可少的资源。1,则TCP服务器创建的步骤:socket(套接字)实质上提供了进程通信的端点,进程通信之前,双方首先必须有各自的一个端点...原创 2018-10-22 22:15:28 · 411 阅读 · 0 评论 -
Linux学习之多线程编程(多线程的练习)
言之者无罪,闻之者足以戒。 ——《诗序》1、创造一个线程,主线程打印奇数,新线程打印偶数,交替执行下面来看程序:#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <signal.h>#include...原创 2018-10-23 21:09:26 · 1286 阅读 · 0 评论 -
十个适合快速学习的C开源项目
代码阅读——十个C开源项目 1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz2105...转载 2018-10-24 20:51:45 · 334 阅读 · 0 评论