黑马程序员技术交流社区

标题: 在编写代码时sleep()方法放在哪合适?什么时候放? [打印本页]

作者: 王虎    时间: 2012-10-10 11:36
标题: 在编写代码时sleep()方法放在哪合适?什么时候放?
这个问题在我在编码时总是感觉无从入手,想不到这一点;另外还有一个同步代码块放的位置:即synchronized(){},    {}中括住哪些语句合适
作者: zczcyc0201    时间: 2012-10-10 12:05
本帖最后由 zczcyc0201 于 2012-10-10 12:07 编辑

1.sleep()放在需要线程暂停的地方

比如,你想每隔5秒打印一个1,无限循环,可以写成这样:
while(true)
{
Thread.sleep(5000);//单位是毫秒
System.out.println(1);
}

2.多个线程操作共享数据时,一个线程还没执行完,另一个线程参与进来,会造成数据的错乱,就需要用到synchronized(){}, 用了synchronized(){}同步代码块以后,一个线程在执行的时候,其他线程无法参与进来,保证了数据安全。使用前提,需要有两个或两个以上线程
作者: 范泰洋    时间: 2012-10-10 12:06
sleep()我感觉应该是在多线程编程的时候放,具体放在那,看你是要主线程睡着还是要thread线程睡着了,要根据实际情况而定。
synchronized(){}放在多线程运行的代码中,括号中括住的是共享的资源{就是多线程共享的资源。}
作者: 唐增友    时间: 2012-10-10 12:13
一般情况下不需要用sleep的只有在你需要让当前代码停顿的时候再写sleep sleep接受一个整数参数  单位是毫秒
synchronized(){} 在多线程中用的  ,被其包含的代码只能同时被一条线程执行,这就是线程安全吧
作者: 黑马乔荣柱    时间: 2012-10-10 16:11
当你想冻结一个线程一段时间时用sleep(),就是在线程执行过程中放在想让线程暂时“停止”的地方
同步代码快synchronized(this){}就括住具体执行的线程中的某个方法中的内容就行




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2