Java多线程使用Runnable接口创建线程时,Thread thread1 = new Thread(t1, "MyThread1");这一步啥意思

packagemythread;publicclassMyRunnableimplementsRunnable{publicvoidrun(){System.out.pr... package mythread;

public class MyRunnable implements Runnable
{
public void run()
{
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args)
{
MyRunnable t1 = new MyRunnable();
MyRunnable t2 = new MyRunnable();
Thread thread1 = new Thread(t1, "MyThread1");
Thread thread2 = new Thread(t2);//把t1放在括号啥意思???
thread2.setName("MyThread2");
thread1.start();
thread2.start();
}
}
展开
 我来答
辰时劣人
推荐于2018-03-13 · TA获得超过117个赞
知道答主
回答量:57
采纳率:0%
帮助的人:65.6万
展开全部
MyRunnable t1 = new MyRunnable();
-----
这个语句表明实例化了一个MyRunnable对象t1,MyRunnable是一个Runnable接口的类。这点很好理解吧。

Thread thread1 = new Thread(t1, "MyThread1");
------
这个语句也是实例化了一个Thread对象thread1,这点和t1是一样理解的,就是:生成了一个Thread对象放在内存里面,有一个指针thread1指向了它。

thread1.start();
--------
这里,才是真正意义上的启动了“thread”。看看以下API对线程的定义:
“A thread is a thread of execution in a program. ”
线程是就是一段程序的执行过程。这个“过程”被抽象成一个对象(确切的说是类):java.lang.Thread。(面向对象的思想不就是这样的吗?)。
于是,Java的API就规定了这段“在你的程序里被执行的程序”必须是实现了java.lang.Runnable接口的类或者继承java.lang.Thread类,的run方法里的代码。
简单的说,你要启动一个线程,就必须实例化一个Thread对象,传入一个符合规定(实现Runnable或者继承Thread)“要运行的线程对象”MyJob,然后调用start()方法,告诉虚拟机:你帮我启动一个新的线程,执行MyJob里面的run方法的代码吧。

楼主如果还不理解,建议看看关于进程与操作系统相关的知识,对你有帮助的。
437384801
2013-01-13 · TA获得超过1867个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:500万
展开全部
很简单啊
这个是Thread的构造函数
public Thread(Runnable r)
{

}
因为Runnable 借口没有启动线程的方法start,所以才要非一步用thread类的start()来启动。
我觉得java设计简直懒死了
更多追问追答
追问
程序中并没有这个构造函数呀
追答
有的。亲。查看源码你就可以可以看到,他有好多无聊的构造函数
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旧事75
2019-09-29
知道答主
回答量:1
采纳率:0%
帮助的人:683
展开全部
就是两种更改名字的方法啊 一种是在参数列表里 直接加,另外一种是setName
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式