A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马YJM 中级黑马   /  2016-8-3 20:24  /  892 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

start方法与run方法的区别?
synchronized
锁可以是任意类型的对象,只要多个线程使用同一把锁就可以使多个线程操作相同数据时同步。<这句话怎么理解>

1 个回复

倒序浏览
首先每一个线程都有自己的任务代码,例如主线程的任务代码在main()里面,而自定义线程的任务代码就在run()方法里面,调用start()方法就会启动这个线程。run()方法可以被当作普通方法被对象调用多次,而start()方法只能调用一次用来启动线程。锁可以是任意类型的对象,在线程执行的时候如何使用同步代码块的时候,线程等待时会以锁为标识创建一个线程池,用来暂时“存储”等待执行的线程代码,所以这些线程必须是同一把锁,才能保证一个时间片内只有一个线程在操作数据,实现数据的同步。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马