zoukankan      html  css  js  c++  java
  • 多线程安全----同步锁(互斥锁)

    多条线程抢夺同一资源时,经常需要加锁,保证同一时间只能有一条线程操作一个资源。

    同步锁就是互斥锁

    格式:@synchronized (token) { }

    token:锁对象,要使用全局的对象,建议使用self

    {} 要加锁的代码段

    注意点:加多把锁是无效的。 要注意加锁的位置。

     互斥锁的优点: 能有效防止多线程因抢夺资源造成的数据安全问题

    互斥锁的缺点:需要消耗大量的cpu资源

    互斥锁使用的前提:多条线程抢夺同一块资源

    相关术语:线程同步

    线程同步就是多条线程在同一条线上执行(按顺序的执行任务)

    互斥锁就是使用了线程同步技术。

    @synchronized (self) {

                

                NSInteger count = self.totalCount;

                if (count > 0) {

                    self.totalCount--;

                    for (int i = 0; i<1000000; i++) {

                        

                    }

                    NSLog(@"票还有%ld张",self.totalCount);

                }else{

                    NSLog(@"票卖完了。。。。");

                    break;

                }

                

            }

  • 相关阅读:
    NTP on FreeBSD 12.1
    Set proxy server on FreeBSD 12.1
    win32 disk imager使用后u盘容量恢复
    How to install Google Chrome Browser on Kali Linux
    Set NTP Service and timezone on Kali Linux
    Set static IP address and DNS on FreeBSD
    github博客标题显示不了可能是标题包含 特殊符号比如 : (冒号)
    server certificate verification failed. CAfile: none CRLfile: none
    删除文件和目录(彻底的)
    如何在Curl中使用Socks5代理
  • 原文地址:https://www.cnblogs.com/dashengios/p/10386450.html
Copyright © 2011-2022 走看看