不能,一个对象的一个synchronized方法只能由一个线程访问。对象的synchronized方法不能进入了,但它的其他非synchronized方法还是可以访问的。
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口。
同步的实现方面有两种,分别是synchronized,wait与notify。
wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
扩展资料
线程的特点:
1、线程是轻量级的进程;
2、线程没有独立的地址空间(内存空间);
3、线程是由进程创建的(寄生在进程);
4、一个进程可以拥有多个线程-->这就是我们常说的多线程编程;
5、线程有几种状态:
a、新建状态(new)
b、就绪状态(Runnable)
c、运行状态(Running)
d、阻塞状态(Blocked)
e、死亡状态(Dead)
多线程的好处:
1、充分利用CPU的资源;
2、简化编程模型;
3、带来良好的用户体验。