当前位置: 首页 > news >正文

led行业网站源码宜昌网站seo收费

led行业网站源码,宜昌网站seo收费,浙江省建设建材工会网站,qq是腾讯旗下的吗目录 互斥锁的概念和使用 线程通信 - 互斥 互斥锁的创建和销毁 互斥锁的创建 互斥锁的销毁 互斥锁的使用 申请锁 释放锁 互斥锁的概念和使用 线程通信 - 互斥 临界资源#xff1a; 一次只允许一个任务#xff08;进程、线程#xff09;访问的共享资源#xff1b…目录 互斥锁的概念和使用 线程通信 - 互斥 互斥锁的创建和销毁 互斥锁的创建 互斥锁的销毁 互斥锁的使用 申请锁 释放锁 互斥锁的概念和使用 线程通信 - 互斥 临界资源 一次只允许一个任务进程、线程访问的共享资源 临界区 访问临界资源的代码 互斥机制 mutex互斥锁任务访问临界资源钱申请锁访问完后释放锁 互斥锁的创建和销毁 互斥锁的创建 两种方法创建互斥锁静态方式和动态方式 动态方式 int pthread_mutex_init(pthread_mutex_t *resttrict mutex, const pthread_mutexattr_t *restrict attr); 成功时返回0 失败时返回错误码 参数 pthread_mutex_t 定义一个互斥锁 mutex 指向要初始化的互斥锁对象 mutexattr 用于指定互斥锁属性如果为NULL测使用缺省属性。 man函数出现 No manual entry for pthread_mutex_xxx找不到pthread_mutex_xxx 解决办法apt-get install manpages-posix-dev 静态方式 pthread_mutex_t mutex PTHREAD_MUTEX_INITIALIZER; 互斥锁的销毁 int pthread mutex destroy(pthread mutex_t *mutex) 在Linux中互斥锁并不占用任何资源因此LinuxThreads中的 pthread_mutex_destroy() 除了检查锁状态以外锁定状态则返回EBUSY没有其他动作。 互斥锁的使用 申请锁 int pthread_mutex_lock(pthread_mutex_t *mutex) int pthread_mutex_trylock(pthread_mutex_t *mutex) 成功时返回0 失败时返回错误码 参数 mutex指向要初始化的互斥锁对象 pthread_mutex_lock 如果无法获得锁任务阻塞 pthread_mutex_trylock 如果无法获得锁返回EBUSY而不是挂起等待 释放锁 #include pthread.h int pthread_mutex_unlock(pthread_mutex_t *mutex)成功时返回 0 失败时返回错误码 mutex 指向要初始化的互斥锁对象 问题实现多个线程写一个文件使用互斥锁 代码实现 #include pthread.h #include stdio.h #include unistd.h #include string.hpthread_mutex_t mutex PTHREAD_MUTEX_INITIALIZER;FILE *fp; void *func2(void *arg){pthread_detach(pthread_self());printf(This func2 thread\n);char str[]I write func2 line\n;char c;int i0;while(1){pthread_mutex_lock(mutex);while(istrlen(str)){c str[i];fputc(c,fp);usleep(1);i;}pthread_mutex_unlock(mutex);i0;usleep(1);}pthread_exit(func2 exit);}void *func(void *arg){pthread_detach(pthread_self());printf(This is func1 thread\n);char str[]You read func1 thread\n;char c;int i0;while(1){pthread_mutex_lock(mutex);while(istrlen(str)){c str[i];fputc(c,fp);i;usleep(1);}pthread_mutex_unlock(mutex);i0;usleep(1);}pthread_exit(func1 exit); }int main(){pthread_t tid,tid2;void *retv;int i;fp fopen(1.txt,a);if(fpNULL){perror(fopen);return 0;}pthread_create(tid,NULL,func,NULL);pthread_create(tid2,NULL,func2,NULL);while(1){ sleep(1);} }读写锁的概念和使用 特性 对于写者写者使用写锁如果当前 没有读者也没有其他写者写者立即获得写锁否则写者将等待知道没有读者和其他写者 对于读者 读者使用读锁如果当前没有写者读者立即获取读锁否则读者等待知道没有写者。 注意 同一时刻只有一个线程可以获得写锁同一时刻可以有多个线程获得读锁。 读写锁处于写锁状态时所有试图对读写锁加锁的线程不管是读者试图加读锁还是写者试图加写锁都会被阻塞 读写锁处于读锁状态时有写者试图加写锁时之后的其他线程的读锁请求会被阻塞以避免写者长时间的不写锁 读写锁的创建 初始化一个读写锁 pthread_rwlock_init 读 锁定 读写定 pthread_rwlock_rdlock 非阻塞 读 锁定 pthread_rwlock_tryrdlock 写 锁定 读写锁 pthread_rwlock_wrlock 非阻塞 写 锁定 pthread_rwlock_trywrlock 解锁 读写锁 pthread_rwlock_unlock 释放 读写锁 pthread_rwlock_destroy 代码实现 #include pthread.h #include stdio.h #include unistd.h #include string.hpthread_rwlock_t rwlock;FILE *fp; void * read_func(void *arg){pthread_detach(pthread_self());printf(read thread\n);char buf[32]{0};while(1){//rewind(fp);pthread_rwlock_rdlock(rwlock);while(fgets(buf,32,fp)!NULL){printf(%d,rd%s\n,(int)arg,buf);usleep(1000);}pthread_rwlock_unlock(rwlock);sleep(1);}}void *func2(void *arg){pthread_detach(pthread_self());printf(This func2 thread\n);char str[]I write func2 line\n;char c;int i0;while(1){pthread_rwlock_wrlock(rwlock);while(istrlen(str)){c str[i];fputc(c,fp);usleep(1);i;}pthread_rwlock_unlock(rwlock);i0;usleep(1);}pthread_exit(func2 exit);}void *func(void *arg){pthread_detach(pthread_self());printf(This is func1 thread\n);char str[]You read func1 thread\n;char c;int i0;while(1){pthread_rwlock_wrlock(rwlock);while(istrlen(str)){c str[i];fputc(c,fp);i;usleep(1);}pthread_rwlock_unlock(rwlock);i0;usleep(1);}pthread_exit(func1 exit); }int main(){pthread_t tid1,tid2,tid3,tid4;void *retv;int i;fp fopen(1.txt,a);if(fpNULL){perror(fopen);return 0;}pthread_rwlock_init(rwlock,NULL);pthread_create(tid1,NULL,read_func,1);pthread_create(tid2,NULL,read_func,2);pthread_create(tid3,NULL,func,NULL);pthread_create(tid4,NULL,func2,NULL);while(1){ sleep(1);} }死锁 概念 什么是死锁 避免方法 1、锁越少越好最好使用一把锁 2、调整好锁的顺序
http://www.w-s-a.com/news/158227/

相关文章:

  • 网页设计与网站建设书籍包头住房与城乡建设局网站
  • 重庆网站建设平台免费猎头公司收费收费标准和方式
  • 形象设计公司网站建设方案书打开一个不良网站提示创建成功
  • 网站手机页面如何做网站关键字 优帮云
  • 免费的黄冈网站有哪些下载软件系统软件主要包括网页制作软件
  • 企业微站系统重庆高端网站建设价格
  • 有没有做衣服的网站吗网站自适应开发
  • 青海省制作网站专业专业定制网吧桌椅
  • 网站开发的项目17岁高清免费观看完整版
  • 手机网站建设多少钱一个门网站源码
  • 重庆 网站开发天津住房和城乡建设厅官方网站
  • 泰安高级网站建设推广厦门高端网站建设定制
  • jsp网站开发引用文献手机seo排名
  • 创建一家网站如何创设计网页的快捷网站
  • 1688代加工官方网站h5开发教程
  • 静态网站源码下载网站怎么显示备案号
  • 网站代码设计网站开发维护任职要求
  • 长寿做网站的电话怎么快速刷排名
  • 上海市中学生典型事例网站邯郸全网推广
  • 厦门网站建设680元好男人的最好的影院
  • 石家庄网站建设设计产品设计专业就业前景
  • 网站移动排名做最好最全的命理网站
  • 网站怎么防黑客杭州市做外贸网站的公司
  • 网站推广公司认准乐云seo易语言做网站登录
  • 配色设计网站推荐网站下拉菜单重叠
  • 内容展示型网站特点在北京注册公司需要多少钱
  • h5网站源代码创意设计理念
  • 岳阳网站开发服务推广运营平台
  • 网站开发得多长时间湖南建设人力资源网证书查询
  • 论坛网站开发网络营销是什么时候产生的