Giriş
Şu satır dahil edilir.
Yapısı Nasıldır
Bu yapı işletim sistemine göre değişiklik gösterebilir. Örnek:
Bu yapının alanlarını atamak için kullanılan metodlar şöyle. setX() metodlarına karşılık gelen getX() metodları var.
pthread_attr_init()
pthread_attr_setdetachstate()
pthread_attr_setguardsize()
pthread_attr_setinheritsched()
pthread_attr_setschedparam()
pthread_attr_setschedpolicy()
pthread_attr_setscope()
pthread_attr_setstack()
pthread_attr_setstacksize()
Ayrıca bu yapıyı yok etmek için pthread_attr_destroy() kullanılır.
pthread_attr_init metodu
Yapıyı default değerlerle doldurmak için şöyle yaparız.
Örnek ver
pthread_attr_setdetachstate metodu
Joinable thread için şöyle yaparız.
pthread_attr_setstack metodu
stack adresini atamak için kullanılır. Örnek ver
pthread_attr_setstacksize metodu
C++11 thread'lerinde yığıt boyutunu ayarlamak mümkün değil. Posix ile yapmak mümkün.
Yığıt boyutu şöyle alınır.
pthread_attr_setinheritsched metodu
Şöyle yaparız.
Şu satır dahil edilir.
#include <pthread.h>
Açıklaması şöyleThe attr argument points to a pthread_attr_t structure whose contents
are used at thread creation time to determine attributes for the new
thread; this structure is initialized using pthread_attr_init(3) and
related functions. If attr is NULL, then the thread is created with
default attributes.
Bu yapı pthread_create() metoduna verilebilen parametrelerden bir tanesi. Thread'in davranışını ayarlamak için kullanılır.Yapısı Nasıldır
Bu yapı işletim sistemine göre değişiklik gösterebilir. Örnek:
#define __SIZEOF_PTHREAD_ATTR_T 36
typedef union
{
char __size[__SIZEOF_PTHREAD_ATTR_T];
long int __align;
} pthread_attr_t;
pthread_attr_init()
pthread_attr_setdetachstate()
pthread_attr_setguardsize()
pthread_attr_setinheritsched()
pthread_attr_setschedparam()
pthread_attr_setschedpolicy()
pthread_attr_setscope()
pthread_attr_setstack()
pthread_attr_setstacksize()
Ayrıca bu yapıyı yok etmek için pthread_attr_destroy() kullanılır.
pthread_attr_init metodu
Yapıyı default değerlerle doldurmak için şöyle yaparız.
pthread_attr_t thread_attr;
pthread_attr_init(&thread_attr);
pthread_attr_setscope metoduÖrnek ver
pthread_attr_setdetachstate metodu
Joinable thread için şöyle yaparız.
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
pthread_attr_setstack metodu
stack adresini atamak için kullanılır. Örnek ver
pthread_attr_setstacksize metodu
C++11 thread'lerinde yığıt boyutunu ayarlamak mümkün değil. Posix ile yapmak mümkün.
Yığıt boyutu şöyle alınır.
pthread_attr_t thread_attr;
size_t tmp_size=0;
pthread_attr_init(&thread_attr);
pthread_attr_getstacksize(&thread_attr , &tmp_size );
Yığıt boyutu şöyle atanır.pthread_attr_t thread_attr;
pthread_attr_init(&thread_attr);
pthread_attr_setstacksize(&thread_attr , PTHREAD_STACK_MIN + 0x1000);
Thread belli bir yığıt ile şöyle başlatılır.void* foo(void* arg){...} //Thread method
.
.
.
.
pthread_attr_t attribute;
pthread_t thread;
pthread_attr_init(&attribute);
pthread_attr_setstacksize(&attribute,1024); //Set stack size
pthread_create(&thread,&attribute,foo,0); //Create thread
pthread_join(thread,0); //Wait for thread to finish
pthread_attr_setinheritsched metodu
Şöyle yaparız.
pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);
pthread_attr_setschedpolicy metodu
Hiç yorum yok:
Yorum Gönder