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

如何让搜索引擎收录网站wordpress接入微软小冰

如何让搜索引擎收录网站,wordpress接入微软小冰,.net 接单网站有哪些,手机号快速注册什么是线程死锁 线程死锁是指由于两个或者多个线程互相持有对方所需要的资源#xff0c;导致这些线程处于相互等待状态#xff0c;若无外力作用#xff0c;它们将无法继续执行下去。 造成死锁的原因可以概括成三句话#xff1a; 当前线程拥有其他线程需要的资源当前线程…什么是线程死锁 线程死锁是指由于两个或者多个线程互相持有对方所需要的资源导致这些线程处于相互等待状态若无外力作用它们将无法继续执行下去。 造成死锁的原因可以概括成三句话 当前线程拥有其他线程需要的资源当前线程等待其他线程已拥有的资源都不放弃自己拥有的资源 线程死锁产生的四个必要条件 互斥共享资源 X 和 Y 只能被一个线程占用占有且等待线程 T1 已经取得共享资源 X在等待共享资源 Y 的时候不释放共享资源 X不可抢占其他线程不能强行抢占线程 T1 占有的资源循环等待线程 T1 等待线程 T2 占有的资源线程 T2 等待线程 T1 占有的资源就是循环等待。 举个必然产生死锁的例子 public static void main(String[] args) {Object a new Object();Object b new Object();// 线程1new Thread(() - {synchronized (a) {System.out.println(获得了A锁);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}synchronized (b) {}}}).start();// 线程2new Thread(() - {synchronized (b) {System.out.println(获得了B锁);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}synchronized (a) {}}}).start(); }上面的程序就是一个典型死锁的例子为了保证死锁发生的几率我这里在获得锁之后睡眠了1s。 线程1在获得A对象锁之后等了1s去尝试获取B对象锁这时线程1是持有A对象锁的线程2在获得B对象锁之后等待1s去尝试获得A对象锁这时线程2是持有B对象锁的就在它们彼此想获得对方的锁的时候死锁发生了并且一直持续下去。 如何避免死锁 上面提到只有这四个条件都发生时才会出现死锁那么意思就是说只要我们破坏其中一个就可以成功预防死锁的发生。 破坏互斥只有一把锁这是形成死锁的最关键的原因。显然如果我们能在两个线程跑之前能给每个线程单独拷贝一份钥匙的副本就能有效的避免死锁了。占用且等待一次性申请所有的资源这样就不存在等待了。 例如线程1一次性拿到A和B两个锁线程2在获取锁的时候需要等待线程1释放锁这样就避免了多线程互相占用等待的情况。不可抢占占用部分资源的线程进一步申请其他资源时如果申请不到可以主动释放它占有的资源。 在上面的死锁代码中我们使用了synchronized关键字它是不能主动释放资源的会造成线程一直阻塞JUC提供了Lock解决这个问题。 显式使用Lock类中的定时tryLock功能来代替内置锁机制可以检测死锁和从死锁中恢复过来。显式锁可以指定一个超时时限Timeout在等待超过该时间后tryLock就会返回一个失败信息释放其拥有的资源其他线程可以获取此资源避免死锁。循环等待如果一个线程需要一些锁那么它必须按照确定的顺序获取锁。只有先获得了从顺序上排在前面的锁之后才能获取后面的锁。 破坏循环条件很简单只要线程之间不要出现交叉占用的情况即可也就是说在在代码中尽量避免线程1保持A请求B线程2保持B请求A尽可能使他们请求的顺序一致比如线程1请求的顺序是A、B线程2请求的顺序也是A、B这样自然就避免了循环等待的情况发生。 总结 死锁是一个比较头疼的问题但是只要我们的代码规范可以避免大多数情况下的死锁。还有避免死锁的经典算法是银行家算法这里就不扩开介绍了。 在很多情况下尤其是多线程编程中我们要注意线程之间的资源是否存在互相竞争的情况如果有要及时规避死锁的风险。 死锁很多时候会发生在数据库操作中例如长事务、并发条件下的共享锁升级等都会造成数据库死锁后面有时间会专门针对数据库死锁讲一讲。
http://www.zqtcl.cn/news/945486/

相关文章:

  • 池州哪家做网站wordpress方小程序主题
  • 免费建设网站入驻七牛云存储wordpress
  • 上海专业的网站吕梁做网站公司
  • 网站视频链接国际物流网站模板
  • 用asp.net和access做的关于校园二手网站的论文网站环境搭建好后怎么做网站
  • 如何查网站的外链哈尔滨微信网站开发
  • 洛阳设计网站公司建设银行网站 购买外汇
  • 做视频网站的备案要求吗给工厂做代加工
  • 网站建设技术外包西安推荐企业网站制作平台
  • 建立一个做笔记的网站石家庄网站优化
  • 服务器创建多个网站吗中铁雄安建设有限公司网站
  • 建湖建网站的公司网站建设人工费
  • 沈阳公司网站设计公司怎么投放广告
  • 上海哪家做网站关键词排名如何做简洁网站设计
  • 网站维护的内容seo网站关键词优化哪家好
  • 东阳市网站建设西安做网站选哪家公司
  • 宁津网站开发万能应用商店下载
  • 专业制作标书网站地图优化
  • 广州建网站兴田德润团队什么是网络营销详细点
  • win7建网站教程wordpress chrome插件开发
  • 免费行情软件网站下载视频公司介绍ppt制作模板
  • wordpress快速建站wordpress短代码可视化
  • 餐饮型网站开发比较好看的网页设计
  • 网站管理包括潍坊网站建设优化
  • 南开集团网站建设网站服务器搭建
  • 网络的最基本定义泰安seo网络公司
  • 国外比较好的资源网站请人做外贸网站应注意什么问题
  • 人网站设计与制作什么是销售型网站
  • 最简单网站开发软件有哪些企业电子商务网站建设问题
  • 玉林网站制作简单的网站制作代码