ios-多线程访问共享资源
来源:互联网 发布:js里面怎么让div隐藏 编辑:程序博客网 时间:2024/06/05 17:55
什么是共享资源,一块资源可能会被多个线程去共享,也就是多个线程可能会去访问同一块资源,也就是共享这一块资源。
比如说多线程去访问同一个对象,同一个变量,同一个文件。
当多个线程访问同一块资源的时候,很容易引发数据的错乱和数据的安全问题。
这个时候我们在一个线程在访问那块资源的时候,我们需要把它个锁起来,这样在这个线程访问的时候,不允许那个线程访问就可以了。
我们应该怎么去加锁?任意一个对象内部都有一个锁,默认这把锁是打开的,进去之后,锁就会关上,只要在这里面的代码执行完毕之后,才会再次打开。我们只需要在下面这个代码块中写代码就可以了。这把锁其实就是互斥锁。这个互斥锁就是为了让线程同步执行,就是让线程按顺序执行。
@synchronized (self) { }加上锁会影响程序的性能。使用互斥锁的时候锁定的代码越少越好,互斥锁能有效的防止因为多线程抢夺资源造成的数据安全问题。
互斥锁的原理:
每一个对象的内部都有一个锁,当有线程要进入的synchronized到代码中会先去检查对象的锁是打开还是关闭状态,默认的是打开的状态,如果线程执行到代码块的内部会先去加锁,如果锁已经关闭了,又有线程要去执行代码块就要先去等待,等锁打开之后才会再去执行。
加锁之后程序执行的效率比不加锁的时候低,因为线程先要等待上一个线程先结束把锁先打开才能再去执行。锁保证了线程同时操作全局变量的安全性。
阅读全文
0 0
- ios-多线程访问共享资源
- java 多线程 访问一个共享资源
- 多线程对共享资源的访问
- Java多线程 之 访问共享资源(六)
- ThreadLocal:多线程共享资源安全访问新思路
- 多线程共享资源
- 多线程共享资源
- Java多线程 之 访问共享资源synchronized、lock(七)
- java访问局域网共享资源
- 多线程共享资源参考
- 多线程共享资源冲突
- 多线程共享资源冲突
- 多线程共享资源冲突
- 多线程不同步读写共享资源
- 解决多线程 共享资源
- Java多线程之共享资源
- java多线程之共享资源
- 玩玩Java多线程共享资源
- 最小环flody hdu6080
- Android webview 踩坑经验总结
- hdu1025 LIS
- Enum使用
- hbase性能调优
- ios-多线程访问共享资源
- Binary Protocol (Codeforces
- java之static语法详解
- UVA
- WPF布局篇(三)
- 企业数据分析,搞定这3个重点事半功倍!
- Android尺寸转换
- 【Python】 两行命令将.py 的Python脚本 转换成.exe 程序
- Python中的map()和reduce()函数