为什么我的线程被修改了名字? java线程thread 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为你下面调用了setName方法,覆盖了构造方法里面的名字,想知道setName方法怎么传递参数的,你去看下源码,一看就直到怎么回事了 public class CreateThread1 { public static void main(String[] args) throws InterruptedException { MyThread th = new MyThread("周黑鸭"); th.start(); Thread.sleep(2000); th.setName("喵菜头"); th.setPriority(10); th.run(); }}你那样写,第一个线程还没打印"我的名字是: " + this.getName(); 就已经执行接下来的代码th.setName("喵菜头"); 这个可以不用线程的思维来考虑Thread类有个属性name,你开始你赋值给他"周黑鸭"然后又setName("喵菜头");那这个name属性已经变成"喵菜头"了况且线程还没run() 这就是start和run的差别了吧。start是异步的得等cpu调度才能执行,run就是对象方法直接调用了。 如何存钱使利率最大? 如何将一个文本文件倒置输出 如何用表显示数据库内容?? 关于XML如何应用的方案,谁能帮我看看 应该是个常见问题!!启动BDK加载buttons.jar失败 后台处理的问题 关于修改日期的问题 如何用正则表达式在139123213123中找出13? float的问题,为什么写入MSSQL后数值会改变? 主程序所在的类是不是一启动就建立了对象呢?那么它是什么名字? 求助!!! JDK双击没反应! 怎么把数据库里面的一列求和,然后把结果取出来显示在jsp页面上??
public static void main(String[] args) throws InterruptedException {
MyThread th = new MyThread("周黑鸭"); th.start();
Thread.sleep(2000);
th.setName("喵菜头");
th.setPriority(10); th.run(); }
}
你那样写,第一个线程还没打印"我的名字是: " + this.getName(); 就已经执行接下来的代码th.setName("喵菜头");
Thread类有个属性name,你开始你赋值给他"周黑鸭"
然后又setName("喵菜头");那这个name属性已经变成"喵菜头"了况且线程还没run()