Java中关于同步,异步,多线程,多线程同步,并发,并行的一些总结

1.同步与异步

1.1同步

在多线程的环境中,经常会碰到数据共享的情况,即当多个线程共同需要访问一个资源时,他们需要以某种顺序来确保该资源在某一时刻只能被一个线程使用,否则,程序的运行结果将是不可预料的,在这种情况下就必须对数据进行同步,例如多个线程同时对同一数据进行写操作,即当线程A需要使用某个资源时,如果这个资源正在被线程B使用,同步机制就会让线程A一直等待下去,直到线程B结束对该资源的使用后,线程A才能使用这个资源,由此可见,同步机制能够保证资源的安全。

要想实现同步操作,必须要获得每一个线程对象的锁。获得它可以保证在同一时刻只有一个线程能够进入临界区(访问互斥资源的代码块),并且在这个锁被释放前,其他线程就不能再进入这个临界区。如果还有其他线程想要获得该对象的锁,只能进入队列等待。只有当拥有该对象锁的线程退出临界区时,所才会被释放,等待队列中优先级最高的线程才能获得该锁,从而进入共享代码区。

2.多线程

实现java多线程的方法

(1)继承Thread类,重写run()方法

Thread本质上也是实现了Runnable接口的一个实例,他代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()方法。start()方法是一个本地方法,他将启动一个新线程,并执行 run()方法(只有通过start()方法调用的run()方法才能真正的起到异步的作用)。
**小提示**start()方法被调用后并不是立刻执行多线程的代码,而是使得该线程变为可运行状态,什么时候运行多线程代码是由操作系统决定的。(就绪,运行,挂起,结束)

(2)实现Runnable接口,实现run()方法。

小提示创建Thread对象ÿ

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值