Tag: 同步

同步静态方法和非静态方法之间的区别

在java中同步静态方法和非静态方法有什么区别?任何人都可以用一个例子来解释。 同步方法和同步代码块有什么区别吗?

为什么同步方法允许多个线程同时运行?

我在同一个文件中有以下程序。 我已经同步了run()方法。 class MyThread2 implements Runnable { Thread t; MyThread2(String s) { t=new Thread(this,s); t.start(); } public synchronized void run() { for (int i=0;i<3;i++) { System.out.println("Thread name : "+ Thread.currentThread).getName()); try { t.sleep(1000); } catch (InterruptedException e) { e.getMessage(); } } } } class TestSync { public static void main(String[] args) { MyThread2 m1=new MyThread2("My […]

从Java Synchronously运行shell脚本

我试图从Java执行Bash Shell脚本,并使用这段代码运行良好。 public void executeScript() { try { new ProcessBuilder(“myscript.sh”).start(); System.out.println(“Script executed successfully”); } catch (IOException e) { e.printStackTrace(); } } 上面的代码异步运行。 但我想要实现的是同步执行代码。 我希望Java进程等到脚本执行完成后再执行下一批代码。 总而言之,我希望在批处理文件(“myscript.sh”)完成执行后执行“打印语句 – 成功执行脚本”。 谢谢

是否在Java中inheritance了同步?

我有超类Point和一个synchronized方法draw() 。 如果我在其中覆盖方法draw()或者我必须总是写它, Point的子类是否会inheritancesynchronized ?

为什么在Java中同步昂贵?

我是Java的新手,我读到Java中“synchronized”非常“昂贵”。 我想知道的是什么是昂贵的,它是如何昂贵的? 谢谢。

订购线程按照创建/启动的顺序运行

我如何按照实例化的顺序订购线程。如何让下面的程序按顺序打印数字1 … 10。 public class ThreadOrdering { public static void main(String[] args) { class MyRunnable implements Runnable{ private final int threadnumber; MyRunnable(int threadnumber){ this.threadnumber = threadnumber; } public void run() { System.out.println(threadnumber); } } for(int i=1; i<=10; i++){ new Thread(new MyRunnable(i)).start(); } } }

学习Java,使用synchronized关键字

所以我用synchronized关键字进行测试。 这是我尝试的一个例子: public class MyTest { static int i = 0; public static void main(String[] args) { new Thread(t1).start(); new Thread(t2).start(); } private static void countMe(String name){ i++; System.out.println(“Current Counter is: ” + i + “, updated by: ” + name); } private static Runnable t1 = new Runnable() { public void run() { try{ […]

确保按顺序采用Java同步锁?

我们有两个线程通过synchronized方法访问一个列表。 我们可以吗 a)依靠运行时间来确保每个人都可以根据他们尝试的顺序或方式接收方法 b)VM是否遵循任何其他规则 c)是否有更好的方法来序列化请求?

同步版本的异步方法

在Java中创建异步方法的同步版本的最佳方法是什么? 假设你有一个使用这两种方法的类: asyncDoSomething(); // Starts an asynchronous task onFinishDoSomething(); // Called when the task is finished 如何实现在任务完成之前不返回的同步doSomething() ?

为什么这个同步方法不能按预期工作?

我有一个名为“帐户”的课程 public class Account { public double balance = 1500; public synchronized double withDrawFromPrivateBalance(double a) { balance -= a; return balance; } } 还有一个名为ATMThread的类 public class ATMThread extends Thread { double localBalance = 0; Account myTargetAccount; public ATMThread(Account a) { this.myTargetAccount = a; } public void run() { find(); } private synchronized void find() { […]