标签:ott -- main 技术 *args 变量 日期 sla 调用
?
日期:2019/3/26
内容:多线程。
线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
(待补充)
当前的进程可以理解为一个主线程,新建的进程称为工作线程。主线程与工作线程交织并发执行。(见2.1的代码实例)
gcc f.c -o f -lpthread |
?
>>创建一个线程
>>新线程从start_routine开始执行
>>新线程的ID保存在tid指向的位置
参数 | 功能 |
tid | 该参数是一个指针, 新线程的ID保存在tid指向的位置 |
attr | 线程属性。如果为空,则使用缺省的属性值 |
start_routine | 该参数是一个函数指针, 新线程从start_routine开始执行 |
arg | 提供给start_routine的参数 |
>>对于整型变量
int ivalue = 123; void *arg = (void *) ivalue; |
>>字符串(如下代码实例)
>>结构体
struct person { char *name; int age; } p; void *arg = (void *) &p; |
void *thread_run(void *args) { ????int i = 5; ????const char *str = (const char *)(args); ????while(i--) ????{ ????????printf("%s running...\n", str); ????????sleep(1); ????} ????return NULL; } ? int main() { ????pthread_t ptid; ????pthread_create(&ptid, NULL, &thread_run, "subthread"); ? ????int i = 5; ????while(i--) ????{ ????????puts("main thread running..."); ????????sleep(1); ????} ????return 0; } |
标签:ott -- main 技术 *args 变量 日期 sla 调用
原文地址:https://www.cnblogs.com/sinkinben/p/10599268.html