小弟刚接触多线程编程遇到如下问题: 如果使用继承Thread类的方法实现多线程应该是这个样子的:
public class MyThread extends Thread
{
MyThread()
{
}
public void run()
{
//一些逻辑代码
synchronized (this)
{
//需要同步的代码块
}
}
}然后再另外一个地方启动启动线程:
public class MyTest { public static void main(String[] args) {
new MyThread.start();
new MyThread.start();
new MyThread.start();
}}问题在于每当new MyThread.start();时都会产生一个新的this,每个线程一个锁旗标不能起到信号量的作用啊?
我刚接触的,不太清楚请大家指教
public class MyThread extends Thread
{
MyThread()
{
}
public void run()
{
//一些逻辑代码
synchronized (this)
{
//需要同步的代码块
}
}
}然后再另外一个地方启动启动线程:
public class MyTest { public static void main(String[] args) {
new MyThread.start();
new MyThread.start();
new MyThread.start();
}}问题在于每当new MyThread.start();时都会产生一个新的this,每个线程一个锁旗标不能起到信号量的作用啊?
我刚接触的,不太清楚请大家指教
--> synchronized (MyThread.class)
synchronized (this)
{
//需要同步的代码块
}
改成如下: //一些逻辑代码
synchronized
{
//需要同步的代码块
}