JAVA 同步代码块和同步函数
来源:互联网 发布:淘宝微淘如何发买家秀 编辑:程序博客网 时间:2024/05/01 00:36
执行资格:开启的线程 但未执行,正在等待执行叫做具有执行资格。 但没有执行权。
执行权:正在执行的线程叫做具有执行权。(同时具有执行资格)
线程安全问题:
在多个线程开启的时候可能会出现一条线程刚执行某个函数的第一条语句就被跳转,下一条线程开始执行,比如第一条线程刚执行if语句 但没执行if后面的语句就没有了执行权,第二条线程开始执行。等第一条线程再执行的时候 可能数据已经发生了变化。从而导致安全问题。
通过同步代码块解决了线程安全问题。通过同步代码块,当线程进入同步代码块后,只有当这条线程执行完同步代码块中全部内容其他线程才可以进入同步代码块,在这期间即使在同步代码块中的线程失去执行权其他拥有执行权的线程也不能进入同步代码块。
解决了线程安全问题
但降低了效率,当一条线程在同步代码块中没有执行权的时候另一条拥有执行权的线程又不能执行功能,只能等再跳转会同步代码块中的线程再去执行,中间等待的时间就是浪费的效率。
synchronization(对象) 对象时任意的 只要保证多个线程使用同一个对象就行。
同步函数
同步函数就是将要执行的代码封装到函数中。
执行权:正在执行的线程叫做具有执行权。(同时具有执行资格)
线程安全问题:
在多个线程开启的时候可能会出现一条线程刚执行某个函数的第一条语句就被跳转,下一条线程开始执行,比如第一条线程刚执行if语句 但没执行if后面的语句就没有了执行权,第二条线程开始执行。等第一条线程再执行的时候 可能数据已经发生了变化。从而导致安全问题。
同步函数和同步代码块都是为了解决线程安全问题。
通过同步代码块解决了线程安全问题。通过同步代码块,当线程进入同步代码块后,只有当这条线程执行完同步代码块中全部内容其他线程才可以进入同步代码块,在这期间即使在同步代码块中的线程失去执行权其他拥有执行权的线程也不能进入同步代码块。
解决了线程安全问题
但降低了效率,当一条线程在同步代码块中没有执行权的时候另一条拥有执行权的线程又不能执行功能,只能等再跳转会同步代码块中的线程再去执行,中间等待的时间就是浪费的效率。
synchronization(对象) 对象时任意的 只要保证多个线程使用同一个对象就行。
同步函数
同步函数就是将要执行的代码封装到函数中。
同步函数后面的对象就是this 而且是不能改变的。
使用比较多的是同步代码块,因为同步代码块的对象是可以改变的。而同步函数可以说是同步代码块的一种简写形式。它把对象固定为this。
0 0
- JAVA 同步代码块和同步函数
- java同步代码块和同步函数
- java线程安全之同步函数和同步代码块
- JAVA多线程 <二>同步函数和同步代码块
- Java 同步函数和同步代码块锁
- 同步代码块和同步函数
- java同步方法和同步代码块
- java同步方法和同步代码块
- java同步方法和同步代码块
- 同步代码块和同步函数之间同步
- JAVA同步代码块
- Java多线程线程、同步代码块、同步函数、死锁
- 好用的同步代码块和同步函数
- 同步代码块和同步函数的区别
- 【java0009】多线程同步代码块和同步函数
- 多线程:初识同步代码块和同步函数
- java同步方法和同步代码块的区别
- Java中同步方法和同步代码块
- android 的unregisterReceiver报错处理
- Java注解
- 用OpenSceneGraph实现的NeHe OpenGL教程 - 第三十九课
- 测试Windows Live Writer
- 在EA中将画出的ER图转换成SQL脚本
- JAVA 同步代码块和同步函数
- jQuery选择器大全
- 《Python核心编程》第2章 快速入门 练习
- fastboot 烧入 img---fastboot配置(解决fastboot no permissions 错误)
- JAVA中获取当前系统时间
- Netty源码学习——Included transports(传输方式)
- linux用户组和权限
- 互联网金融迈入深水区
- 动态网站一(哈佛大学公开课:构建动态网站1-3课)