public class main class { public static void main(String[]args){
T1 ok = new T1();
T2 ok1 = new T2();
ok.start();
ok1.start();
}
}
public class T1 extends Thread {
@Override
public void run() {
DemoClass q = new DemoClass();
for (int i = 0; i <= 5; i++)
try {
q.demoMethod();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class T2 extends Thread {
@Override
public void run() {
DemoClass q = new DemoClass();
for (int i = 0; i <= 5; i++)
try {
q.demoMethod1();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class DemoClass {
String s = "";
String s1 = "";
public void demoMethod() throws InterruptedException {
System.out.println(Thread.currentThread().getName() + " Entered m1");
synchronized (s) {
System.out.println(Thread.currentThread().getName() + " Inside m1 ");
Thread.sleep(5000);
}
System.out.println(Thread.currentThread().getName()+" m1");
}
public void demoMethod1() throws InterruptedException {
System.out.println(Thread.currentThread().getName() + " Entered m2");
System.out.println(Thread.currentThread().getName() + " Inside m2 ");
Thread.sleep(5000);
System.out.println(Thread.currentThread().getName()+" m2");
}
}
即使我创建了DemoClass的单独对象,然后通过单独的线程调用单独的方法。为什么一次只有一个线程工作?
或者,如果有人可以建议我们将调用 DemoClass 中的代码的锁定类型
您正在< code>s上同步,它始终是同一个对象。
不要那样做。如果要同步任何内容,请在< code>this上同步。
我在看一个项目,我发现了一些很奇怪的东西。 现在,我认为唯一的两个优点是,在非静态容器中封装时,命名更加清晰,并且可以传递的参数更少。 但我想知道这是不是一个好主意,通过设计来包装静态类与非静态?如果有的话,还有哪些其他原因?因为我认为创建一个静态并对其进行调用是可以的。但是这个项目特意将所有静态类打包;我也不知道为什么。
模型静态属性 [ ] model 定义一个模型 'use strict'; module.exports = app => { const { STRING, INTEGER, DATE } = app.Sequelize; const Post = app.model.define('post', { id: { type: INTEGER, prima
问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: 为什么我会得到“无法从静态上下文引用的非静态变量”? 这是代码 错误说: 非静态类 Node 不能从静态上下文中引用 为什么不应该在main()方法中引用Node类? 问题答案: Java中的非静态嵌套类包含对父类 实例 的隐式引用。因此,要实例化a ,您还需要具有一个实例。在静态上下文(主要方法)中,没有要引用的实例。因此,编
我最近对 PHP 5.4 进行了更新,但收到有关静态和非静态代码的错误。 这是错误: 这是第371行: 我希望有人能帮忙。
我正在努力得到一个用户的基础上,他的id或电子邮件后,他登录通过一个表单。这个函数是在user.class.php中定义的,我想在另一个名为profile.php的php文件中调用它,但它仍然给我带来语法错误,我不知道如何修复它。 错误:不推荐使用:不应静态调用非静态方法User::GetUserId()注意:未定义变量:email in 使用getters和setters,函数 下面是profi
可能重复: 为什么我得到“非静态变量不能从静态上下文引用”? 这是代码 错误说: 不能从静态上下文引用非静态类节点 为什么我不应该在main()方法中引用Node类?