Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行可运行子类的多个函数(不仅仅是run())_Java_Multithreading_Runnable - Fatal编程技术网

Java 运行可运行子类的多个函数(不仅仅是run())

Java 运行可运行子类的多个函数(不仅仅是run()),java,multithreading,runnable,Java,Multithreading,Runnable,是否可以运行Runnable threaded子类的其他函数 e、 g: 但是这是解决问题的正确方法吗?正确的方法是创建两个不同的Runnable对象,每个对象都有自己的run()方法定义 Thread t1 = new Thread(new Runnable1()); Thread t2 = new Thread(new Runnable2()); t1.start(); t2.start(); Java只能通过对Runnable实现或thread的子类执行run()方法来运行线程,您的代码

是否可以运行Runnable threaded子类的其他函数

e、 g:


但是这是解决问题的正确方法吗?

正确的方法是创建两个不同的
Runnable
对象,每个对象都有自己的
run()
方法定义

Thread t1 = new Thread(new Runnable1());
Thread t2 = new Thread(new Runnable2());
t1.start();
t2.start();

Java只能通过对
Runnable
实现或
thread
的子类执行
run()
方法来运行线程,您的代码永远不会执行
MyRunnable.run()
。考虑这个

 MyRunnable r1 = new MyRunnable () ;
 r1.somethingElse(1); 
 Thread t1 = new Thread(r1,"Thread-R1") ;
 t2.start();

在将线程实例提供给线程池之前,您可以调用线程实例中的任何方法(在您的例子中是MyRunnable)。一旦启动线程,就考虑同步。 您想在不同的威胁中或在相同的威胁(非主威胁)中执行run和somethingElse?在相同的线程中,而不是在主线程中。我正在实现一个数据库,我希望所有的查询都在不同的线程中执行。
Thread t1 = new Thread(new Runnable1());
Thread t2 = new Thread(new Runnable2());
t1.start();
t2.start();
 MyRunnable r1 = new MyRunnable () ;
 r1.somethingElse(1); 
 Thread t1 = new Thread(r1,"Thread-R1") ;
 t2.start();