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

网站建设一个月多少钱3秒钟自动跳转网页

网站建设一个月多少钱,3秒钟自动跳转网页,公司网站建设原则,一个彩票网站建设读写锁比mutex有更高的适用性#xff0c;可以多个线程同时占用读模式的读写锁#xff0c;但是只能一个线程占用写模式的读写锁。 1. 当读写锁是写加锁状态时#xff0c;在这个锁被解锁之前#xff0c;所有试图对这个锁加锁的线程都会被阻塞#xff1b; 2. 当读写锁在读加…读写锁比mutex有更高的适用性可以多个线程同时占用读模式的读写锁但是只能一个线程占用写模式的读写锁。 1. 当读写锁是写加锁状态时在这个锁被解锁之前所有试图对这个锁加锁的线程都会被阻塞 2. 当读写锁在读加锁状态时所有试图以读模式对它进行加锁的线程都可以得到访问权但是以写模式对它进行枷锁的线程将阻塞 3. 当读写锁在读模式锁状态时如果有另外线程试图以写模式加锁读写锁通常会阻塞随后的读模式锁请求这样可以避免读模式锁长期占用而等待的写模式锁请求长期阻塞 这种锁适用对数据结构进行读的次数比写的次数多的情况下因为可以进行读锁共享。 API接口说明 1) 初始化和销毁 #include pthread.h int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_rwlockattr_t *restrict attr); int pthread_rwlock_destroy(pthread_rwlock_t *rwlock); 成功则返回0, 出错则返回错误编号. 2) 读加锁和写加锁 获取锁的两个函数是阻塞操作 #include pthread.h int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock); int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock); int pthread_rwlock_unlock(pthread_rwlock_t *rwlock); 成功则返回0, 出错则返回错误编号. 3) 非阻塞获得读锁和写锁 非阻塞的获取锁操作, 如果可以获取则返回0, 否则返回错误的EBUSY. #include pthread.h int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock); int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock); 成功则返回0, 出错则返回错误编号. 实例代码 /************************************************************** pthread_rwlock_test2.c:验证读写锁的默认顺序* 如果在main函数中用pthread_rwlock_wrlock上锁那么* 如果所有线程都阻塞在写锁上的时候优先处理的是被阻塞的写锁* 然后才处理读出锁* 如果在main函数中用pthread_rwlock_rdlock上锁那么* 如果有读者正在读的时候即使后面到来的写者比另外一些到来的读者更早* 也是先处理完读者才转而处理写者这样会导致写饥饿* * 由此(执行结果)可以看出LINUX平台默认的是读者优先如果想要以写者优先* 则需要做一些处理**************************************************************/ #include stdio.h #include pthread.h #include stdlib.hpthread_rwlock_t rwlock;void *readers(void *arg) {pthread_rwlock_rdlock(rwlock);printf(reader %d got the lock\n, (int)arg);pthread_rwlock_unlock(rwlock);//return NULL; } void *writers(void *arg) {pthread_rwlock_wrlock(rwlock);printf(writer %d got the lock\n, (int)arg);pthread_rwlock_unlock(rwlock);//return NULL; }int main(int argc, char **argv) {int retval, i;pthread_t writer_id, reader_id;pthread_attr_t attr;int nreadercount 1, nwritercount 1;if (argc ! 2) {fprintf(stderr, usage, %s threadcount, argv[0]);return -1;}retval pthread_rwlock_init(rwlock, NULL);if (retval) {fprintf(stderr, init lock failed\n);return retval;}pthread_attr_init(attr);//pthread_attr_setdetachstate用来设置线程的分离状态//也就是说一个线程怎么样终止自己状态设置为PTHREAD_CREATE_DETACHED//表示以分离状态启动线程pthread_attr_setdetachstate(attr, PTHREAD_CREATE_DETACHED);//分别在main函数中对读出者和写入者加锁得到的处理结果是不一样的pthread_rwlock_wrlock(rwlock); // pthread_rwlock_rdlock(rwlock);for (i 0; i atoi(argv[1]); i) {if (random() % 2) {pthread_create(reader_id, attr, readers, (void *)nreadercount);printf(create reader %d\n, nreadercount);} else {pthread_create(writer_id, attr, writers, (void *)nwritercount);printf(create writer %d\n, nwritercount);}}printf(main unlock\n);pthread_rwlock_unlock(rwlock);sleep(5);//sleep是为了等待另外的线程的执行return 0; } 参考: LINUX_IPC
http://www.pierceye.com/news/58331/

相关文章:

  • 外贸营销型网站2018wordpress模板赚钱
  • 有学做衣服的网站吗一个网站多个域名 seo
  • 沈阳建立网站承接设计网站建设
  • 视频营销网站苏州保洁公司招聘信息
  • 网站策划与运营百度高级搜索引擎
  • 做网站和APP需要多少钱河南建设工程造价管理协会网站
  • 章丘做网站的公司wordpress倒序阅读
  • 电商网站建设与课程设计.net asp可以外链其它网站吗
  • 济南微网站建设html做的小网站
  • 做的网站一模一样会被告吗课程设计模板
  • 做网站定金一般多少网站权重查询接口
  • 盐城市城南建设局网站网站业务建设是什么意思
  • 做微信支付的网站多少钱wordpress 帝国王
  • 网站 无限下拉菜单python 类似wordpress
  • 广东seo推广外包宜昌优化网站建设
  • 通付盾 建设网站公司wordpress网址转跳页面插件
  • 建站标准做网站能赚钱吗
  • 网站建设云南开发定制软件开发
  • 做企业网站注意事项做设备租赁的网站
  • 网站html动态效果深圳建设厅网站官网
  • 杭州做网站好的公司通州网站网站建设
  • 做网站建设的怎么寻找客户网页设计网站模板
  • 武钢建工集团建设分公司网站做内贸现在一般都通过哪些网站
  • 青岛谷歌seo无锡网站的优化哪家好
  • 太原做淘宝网站的电子商务网站规划建设方案
  • 网站建设整体流程给网站做h5缓存机制
  • 义乌网站建设方案详细门户网站 销售
  • 婚纱摄影网站的设计个人做考试类网站
  • 唯品会网站建设特色wordpress php那个版本号
  • 小男孩和女人做的网站杭州科技网站