1.同步代码块的()里放的是对象,该对象的含义是:如果有多个同步代码块()内放的都是同一个对象,那么也就是说这几个同步代码块是一把锁。锁的机制就是 ,一个对象控制多个同步代码块。你可以在这里放this,this都是指的当前类的对象,是同一个对象。其实你也 可以这么写,类名.class 这是类的字节码对象,在内存中仅有一份
需要记住的是:同一个锁,同步代码块()内都是同一个对象,如果不是同一个对象就不是同一把锁了。
2.关于是使用new THread() 还是new Thread(new Runnable()),楼上说的很明白了。就是扩展性问题。使用接口的话扩展性要好一些。如果你的程序仅仅是开一个线程,没什么扩展性要求,那么使用new Thread也是一样的。
3.但是一般情况下都是使用的new RUnnable的方式的,这是一种好的习惯。就像写集合List list = new ArrayList()一样。 |