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

怎么制作网站应用推广途径有哪些

怎么制作网站应用,推广途径有哪些,企业网络推广外包,私域商城平台目录 互斥锁条件变量读写锁信号量CAS-- 参考 线程同步方式有互斥锁,条件变量,信号量,读写锁,CAS锁等方式 互斥锁 互斥量 pthread_mutex_t在执行操作之前加锁,操作完之后解锁. 使用互斥量,来确保同一时刻只…

目录

  • 互斥锁
  • 条件变量
  • 读写锁
  • 信号量
  • CAS
  • -- 参考

线程同步方式有互斥锁,条件变量,信号量,读写锁,CAS锁等方式

互斥锁

  • 互斥量 pthread_mutex_t
  • 在执行操作之前加锁,操作完之后解锁. 使用互斥量,来确保同一时刻只有一个线程访问某项共享资源。
  • A线程加锁了,B线程无法释放A线程加的锁,只能等A线程自己释放,锁释放后再竞争锁
pthread_mutex_t lock;//创建锁
pthread_mutex_init();//初始化锁
pthread_mutex_lock();//加锁
pthread_mutex_unlock();//解锁
pthread_mutex_destroy();//销毁锁

条件变量

  • 条件变量可以同时唤醒一个或多个线程,信号量只能唤醒一个,唤醒多个线程的时候,通常涉及到资源竞争,往往配合互斥锁使用
  • 条件变量是线程的另一种同步机制,它和互斥量是一起使用的。互斥量的目的就是为了加锁,而条件变量的结合,使得线程能够以等待的状态来迎接特定的条件发生,而不需要频繁查询锁。
pthread_cond_t cond; //创建条件变量
pthread_cond_init();//初始化条件变量
pthread_cond_wait();//线程进入阻塞,等待信号被唤醒
pthread_cond_timedwait();//线程进入阻塞,一定时间后被唤醒
pthread_cond_signal();//满足条件后一次通知一个
pthread_cond_broadcast();//满足条件后一次通知多个
pthread_cond_destroy(); //销毁条件变量

读写锁

  • 以读方式给数据加锁--------读锁。以写方式给数据加锁---------写锁。
    读共享,写独占。
    写锁优先级高。
  • 当线程A处于读的状态,线程B也可以读,但是不能写,当线程A处于写的状态,线程B则不能读,适用与少写多读的场景
pthread_rwlock_t rwlock;//创建读写锁
pthread_rwlock_init();//初始化锁
pthread_rwlock_rdlock();//加读锁
pthread_rwlock_wrlock();//加写锁
pthread_rwlock_trywrlock();//try锁
pthread_rwlock_unlock();//解锁
pthread_rwlock_destroy();//销毁锁多的时候,提高访问效率

信号量

  • 信号量是一种特殊的变量,用来控制对临界资源的使用,在多个进程或线程都要访问临界资源的时候,就需要控制多个进行或线程对临界资源的使用。
  • 信号量机制通过p、v操作实现。p操作:原子减1,申请资源,当信号量为0时,p操作阻塞;v操作:原子加1,释放资源。
  sem_t sem;int sem_init(sem_t *sem, int pshared, unsigned int value);//初始化//pshared传零用于线程间同步,传1用于进程和线程间同步//value也就是Nint sem_wait(sem_t *sem);//加锁系信号量,信号量大于0,信号--操作,信号量等于0阻塞int sem_trywait(sem_t *sem);//try锁int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);//限时尝试对信号进行加锁int sem_post(sem_t *sem);//解锁,将信号量++,同时唤醒阻塞在信号量上的线程int sem_destroy(sem_t *sem);//销毁信号量

CAS

  • CAS是基于乐观锁的线程同步方式
  • CAS算法的作用:解决多线程条件下使用锁造成性能损耗问题的算法,保证了原子性,这个原子操作是由CPU来完成的
    CAS的原理:CAS算法有三个操作数,通过内存中的值(V)、预期原始值(A)、修改后的新值。
    (1)如果内存中的值和预期原始值相等, 就将修改后的新值保存到内存中。
    (2)如果内存中的值和预期原始值不相等,说明共享数据已经被修改,放弃已经所做的操作,然后重新执行刚才的操作,直到重试成功。
// 伪代码
template <class T>
bool CAS(T* addr, T expected, T target) 
{if (*addr == expected) {*addr = target;return true;}return false;
}

– 参考

https://www.cnblogs.com/Chlik/p/13556720.html
http://t.csdnimg.cn/GB6En
https://www.zhihu.com/question/485896579
https://zhuanlan.zhihu.com/p/400817892

http://www.khdw.cn/news/39228.html

相关文章:

  • wordpress添加下载地址seo教程书籍
  • 深圳网站建设设网站域名注册
  • 做网络推广的网站有哪些电商入门基础知识
  • wordpress 多域名301重定向代码昆明百度关键词优化
  • 网站建设广告图如何在百度上建立网站
  • 电子商务网站建设的意义是什么免费下载百度到桌面
  • 网站付的保证金怎么做会计凭证石家庄市人民政府官网
  • 网站做的不好会有什么后果潍坊网站建设优化
  • 卖游戏币网站制作seo服务套餐
  • wordpress oneup网站seo外链建设
  • 网站banner多大合适宁波百度关键词推广
  • 秦皇岛网站开发价格廊坊seo排名
  • 为什么很多公司做网站建设网站建站系统
  • 做b2b网站用什么架构佛山关键词排名工具
  • 广州自助网站搭建建站公司色盲图
  • 织梦网站后台密码忘记了怎么做十大暗网搜索引擎
  • 扬州互联网公司seo攻略
  • wordpress建站必须选择主题腾讯广告联盟
  • 马尾建设局网站线上宣传渠道
  • 三好街网站建设与维护谷歌app官方下载
  • 广州网站建设网站制作公司seo方案怎么做
  • 商城 网站 开发成人教育机构排行前十名
  • 庐江网站制作公司网站定制
  • 营销型企业网站的类型网络运营是做什么的
  • 临沂吧网站建设保定网站seo
  • 织梦网站修改教程视频网站关键词优化的步骤和过程
  • 郑州做网站华久科技电子商务seo
  • 广州化妆品网站建设影视后期哪个培训靠谱
  • 简述网络营销的特点是什么北京排名seo
  • 网站设置快捷方式seo类目链接优化