线程分离设置

PTHREAD_ATTR_SETDETACHSTATELinux Programmer‘s MaPTHREAD_ATTR_SETDETACHSTATE(3)

NAME        pthread_attr_setdetachstate,   pthread_attr_getdetachstate   -  set/get        detach state attribute in thread attributes object

SYNOPSIS        #include <pthread.h>

int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);        int pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);

Compile and link with -pthread.

DESCRIPTION        The  pthread_attr_setdetachstate()  function  sets  the  detach   state  attribute  of  the  thread attributes object referred to by attr to the        value specified in detachstate.  The detach state attribute  determines   whether  a  thread created using the thread attributes object attr will  be created in a joinable or a detached state.

The following values may be specified in detachstate:

PTHREAD_CREATE_DETACHED               Threads that are  created  using  attr  will  be  created  in  a detached state.

PTHREAD_CREATE_JOINABLE               Threads  that  are created using attr will be created in a join‐able state.

The default setting of the detach state attribute in a  newly  initialized thread attributes object is PTHREAD_CREATE_JOINABLE.

默认为合并的模式,而分分离模式,若新建一个线程没有指定线程分离属性,默认就是合并的。

The pthread_attr_getdetachstate() returns the detach state attribute of the thread attributes object attr in the buffer pointed to  by  detachstate.

RETURN VALUE        On  success,  these functions return 0; on error, they return a nonzero        error number.

ERRORS        pthread_attr_setdetachstate() can fail with the following error:

EINVAL An invalid value was specified in detachstate.

CONFORMING TO        POSIX.1-2001.

NOTES        See  pthread_create(3)  for  more  details  on  detached  and  joinable        threads.

A  thread  that is created in a joinable state should eventually either        be joined using pthread_join(3) or  detached  using  pthread_detach(3);        see pthread_create(3).

It is an error to specify the thread ID of a thread that was created in        a  detached  state  in   a   later   call   to   pthread_detach(3)   or        pthread_join(3).

EXAMPLE        See pthread_attr_init(3).

SEE ALSO        pthread_attr_init(3),       pthread_create(3),       pthread_detach(3),        pthread_join(3), pthreads(7)

COLOPHON        This page is part of release 3.35 of the Linux  man-pages  project.   A        description  of  the project, and information about reporting bugs, can        be found at http://man7.org/linux/man-pages/.

Linux                             2010-02-03    PTHREAD_ATTR_SETDETACHSTATE(3)

时间: 2024-10-11 11:18:09

线程分离设置的相关文章

linux线程控制&amp;线程分离

线程概念 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元. 线程是程序中一个单一的顺序控制流程.进程内一个相对独立的.可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位.在单个程序中同时运行多个线程完成不同的工作,称为多线程. 线程资源 由于一个程序中的多个线程共享同一地址空间,因此代码段,数据段内容是共享的.除此之外,以下内容也是共享的: 1. 文件描述符表2. 每种信号的处理方式(SIG_IGN.SIG_DFL

线程分离

线程分离的作用:当主线程与新线程无关时,主线程无需等待新线程的结束. 1.进程属性初始化 pthread_attr_t pth_attr; pthread_attr_init(&pth_attr);2.进程分离属性设置. pthread_attr_setdetachstate(&pth_attr,PTHREAD_CREATE_DETACHED); 3.进程创建. 4.进程属性资源回收. pthread_attr_destroy(&pth_attr); #include<std

MySQL主从(MySQL proxy Lua读写分离设置,一主多从同步配置,分库分表方案)

Mysql Proxy Lua读写分离设置 一.读写分离说明 读写分离(Read/Write Splitting),基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),而从数据库处理SELECT查询操作.数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库. 1.设置说明 Master服务器: 192.168.41.196 Slave服务器: 192.168.41.197 Proxy服务器: 192.168.41.203 2.安装Mysql Pro

线程分离与线程互斥

一.线程分离: 概述: 在任何一一个时间点上,线程是可结合的(joinable)或者是分离的(detached).一一个可结合的线程能够被其他线程收回其资源和杀死.在被其他线程回收之前,它的存储器资源(例如栈)是不释放的.相反,一一个分离的线程是不能被其他线程回收或杀死的,它的存储器 资源在它终止止时由系统自自动释放. 默认情况下,线程被创建成可结合的.为了避免存储器泄漏,每个可结合线程都应该要么被显示示地回收,即调用用pthread_join;要么通过调用用pthread_detach函数被分

线程分离属性

属性对象主要包括是否绑定.是否分离.堆栈地址.堆栈大小.优先级. 可能的坑: 分离状态设置后有可能线程在线程创建函数返回前就已经结束.   可以通过在线程中调用pthread_cond_timewait等待一会.   不然有可能返回的pid  并不是所想的标志当前线程的pid.

线程分离状态

分离状态的线程, 不能用pthread_join()等待它的终止状态. 例1:  修改属性, 创建分离状态线程 mypthread_attr_detach.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <pthread.h> //gcc -g mypthread_attr_detach.c -o mypthread_

多线程使用时,线程数量设置

多线程数量设定 1         Web应用中使用多线程的情况有几种: 1.1         一个线程为快速响应请求,把一些其他业务操作让线程来做,而本线程测快速继续. 1.2         一些业务需要统一处理,用一些线程单独来做. 1.3         …想不出来在web应用中会有什么其他场景. 2         在用到多线程时,一般要启动几个线程来循环做,至于启动几个线程,则是根据统一类型任务的数量和频率,就是说平均一秒内有多少个任务等待执行. 2.1         如果任务很

线程池设置最多M线程执行N个任务

转载地址:http://www.ithao123.cn/content-4805192.html using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace 多线程池试验 { class Program { public static void Main() { //新建ManualResetEvent对象并且初始化为

Nginx缓存和程序动静分离设置

一.配置Nginx缓存. 参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path 语法 proxy_cache_path path [levels=levels] keys_zone=name:size [inactive=time] [max_size=size] [loader_files=number] [loader_sleep=time] [loader_threshold=time];