⑴ java中Thread t=new Thread(new Runnable(){});这是怎么回事接口还能这么玩谢谢!
JAVA是面向对象的,也就是说,对于一个方法等,它需要什么类型的对象,只要传入就可以了。
像这里,Thread类的构造方法中,需要一个实现了Runnable接口的对象,而new就是生成了个Runnable接口下的一个实例对象。
不知明白否
⑵ java初始化Thread t1 = new Thread(new TimePrinter(1000, "Fast Guy"))是什么意思
Thread(Runnable target)
Thread(String name)
以上是api中的两个thread的一个参数的构造方法,均是为了分配一个新的线程。
两个构造函数一个传入的是runnable对象,一个是string这个线程的名字。
纵观你的java类,new TimePrinter(1000, "Fast Guy")即为创建了一个你当前类的对象,而你当前类实现了Runnable 接口,即你新建一个当前类的对象即为runnable对象,如此我们可以很清晰的看到new Thread(new TimePrinter(1000, "Fast Guy")),向Thread t1中传递的为一个runnable对象,即为这个t1的线程中绑定了你当前类的一个run方法在其中。
而接下来,t1.start();即为启动当前类的run方法,传递进去的1000即为线程Thread.sleep(pauseTime); 的睡眠时间。
整观整个java类的作用即是打印输出你传入的name名字加当前时间,线程睡眠一秒钟之后。不停的循环打印你当前的名字和时间。
PS:多看api,多动脑筋想问题,多写代码,总有一天你也会成长为一个高手。
⑶ 关于 java 线程 Thread thread = new Thread(this);
这是的this表示当前类对象,也就是Thread
thread
=
new
Thread(this),
这段代码所处的类对象,想必当前类实现了Runnable接口,实现了Runnable接口的run方法,那Thread
thread
=
new
Thread(this)
表示创建一个线程对象(thread),当调用thread.start()时则表示开启线程,准备执行线程中的run方法。
⑷ JAVA中Thread t = new Thread(); //创建另一线程t后该如何定义线程t
可以这样
class MyThread extends Thread{
public void run(){
System.out.println("Mythread 线程");
}
}
MyThread t = new Mythread();
t.start();
或者这样
Thread t = new Thread(new Runnabel(){
public void run(){
System.out.println("Mythread 线程");
}
});
t.start();
⑸ java里面如何删除掉一个线程,就是new Thread之后怎么把这个new的Thread完完全全的杀掉
你定义一个新线程"myThread"时肯定要重写它的run()方法,当你启动这个线程时即new的时候要调用它是start()方法:new myThread().start();
之后该线程会自动调用它的run()方法,run()方法执行完后线程会自动关闭;
你也可以调用close()来关闭;
如果有任务的线程想暂停一段时间,再继续任务,就别用close()方法,可以用sleep(3000)方法;3秒后线程继续运行.
希望对你有用~~
⑹ Java 在一个方法里面使用 new Thread(......).start(); 到底是好是坏
首先,从语法角度上来说,因为new Thread中使用的类肯定是匿名类,就意味着这个类一般只能被当前的这个Thread使用(不能复用)。同时,有些参数必须是final,意味着这些参数不能再被修改赋值。匿名类只是一个语法糖(Syntax Suger),仅仅让你写代码容易方便而已,作用和你正规写一个类,然后放到Thread中几乎差不多,不存在性质上的好坏,只有语法上和你习惯上写法的好坏而已。
⑺ java线程里面Thread thread=new Thread(file,"aaa"),这里面第二个参数什么意思啊
线程名称,这个可以自定义,如果不写的话现正也会自己定义一个名字(thread-1),你也可以在run方法里使用thread.getName()来查看。
⑻ Java 在一个方法里面使用 new Thread(......).start(); 到底是好是坏
这样的习惯不好,LZ这样的做法对于简单的线程肯定是没有问题的,但是匿名线程最大的问题是没有办法处理线程状态的改变,比如说:
有一个线程,我们管它叫p 定义为new Thread().start(); 这个时候如果我们想让这个线程在某种情况下挂起、休眠或者强制关闭的话,都是没有办法实现的,只能等着线程自动执行完,相当于为我们创建了一个没有办法人工操作的线程。
如果你的这个线程要用到原来方法中的变量的话,需要加上final,这个道理和内部类中使用该方法的变量是一个道理。
⑼ java Thread 在一个方法中new 了一个 Thread ,当这个线程在运行时再调用另外一个方法关闭这个线程
public class StopThread() implements Runnable{
//停止线程的标记值boolean;
private boolean flag = true;
public void stopThread()(){
flag = false;
}
public void run(){
int i=0;
while(flag){
i++;
System.out.println(Thread.currentThread().getName()+":"+i);
try{
Thread.sleep(1000);
}catch(Exception e){
}
System.out.println(Thread.currentThread().getName()+"==>"+i);
}
}
public static void main(String args[]){
StopThread st = new StopThread();
Thread th = new Thread(st);
Thread th1 = new Thread(st);
th.start();
th1.start();
try{
Thread.sleep(5500);
}catch(Exception e){
}
/*
如果使用Thread.stop方法停止线程,不能保证这个线程是否完整的运行完成一次
run方法;但是如果使用停止的标记位,那么可以保正在真正停止之前完整的运行完
成一次run方法;
*/
th.stop();
st.stopThread();
}
}
你可以参考以上代码,也就是设置一个全局变量,然后试试