|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
安装和登录命令:login、shutdown、halt、reboot、mount、umount、chsh
明天再一次看了下Linux多线程的常识。看了看代码是怎样完成的,很high。再具体的看一下这几段代码
关于线程很仔细的注释百度百科上写的相称好了。偶然间我还得看几遍。地点:百度百科--Linux多线程
/*
*临盆者消耗者成绩的多线程互斥把持,源程序出自《Linux收集编程》
*/
#include<stdio.h>
#include<pthread.h>
#include<sched.h>
void*producter_f(void*arg);
void*consumer_f(void*arg);
intbuffer_has_item=0;/*设置缓存数目*/
pthread_mutex_tmutex;/*设置互斥*/
intrunning=1;
intmain(void)
{
pthread_tconsumer_t;/*线程参数*/
pthread_tproducter_t;
/*不晓得这句为何不给我变蓝色,初始化互斥*/
pthread_mutex_init(&mutex,NULL);
/*创立线程*/
pthread_create(&producter_t,NULL,(void*)producter_f,NULL);
pthread_create(&consumer_t,NULL,(void*)consumer_f,NULL);
usleep(1);
running=0;
/*守候线程加入,一个线程不克不及够被多个线程守候*/
pthread_join(consumer_t,NULL);
pthread_join(producter_t,NULL);
/*烧毁互斥*/
pthread_mutex_destroy(&mutex);
return0;
}
void*producter_f(void*arg)
{
while(running)
{
pthread_mutex_lock(&mutex);/*加锁,进进互斥区*/
buffer_has_item++;
printf("product,num:%d
",buffer_has_item);
pthread_mutex_unlock(&mutex);/*解锁,分开互斥区*/
}
}
void*consumer_f(void*arg)
{
while(running)
{
pthread_mutex_lock(&mutex);
buffer_has_item--;
printf("consumer,num:%d
",buffer_has_item);
pthread_mutex_unlock(&mutex);
}
}
/*
*临盆者消耗者成绩的旌旗灯号量把持,能够与上述程序举行对照,出处--同上
*/
#include<stdio.h>
#include<pthread.h>
#include<semaphore.h>
void*producter_f(void*arg);
void*consumer_f(void*arg);
sem_tsem;
intrunning=1;
intmain(void)
{
pthread_tconsumer_t;
pthread_tproducter_t;
sem_init(&sem,0,16);/*旌旗灯号量初始化*/
pthread_create(&producter_t,NULL,(void*)producter_f,NULL);
pthread_create(&consumer_t,NULL,(void*)consumer_f,NULL);
sleep(1);
running=0;
pthread_join(consumer_t,NULL);
pthread_join(producter_t,NULL);
sem_destroy(&sem);/*烧毁旌旗灯号量*/
return0;
}
void*producter_f(void*arg)
{
intsemval=0;/*旌旗灯号量的初始值*/
while(running)
{
usleep(1);
sem_post(&sem);/*旌旗灯号量+1*/
sem_getvalue(&sem,&semval);/*失掉旌旗灯号量的值*/
printf("pro,num:%d
",semval);
}
}
void*consumer_f(void*arg)
{
intsemval=0;
while(running)
{
usleep(1);
sem_wait(&a
12下一页
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho |
|