Java线程问题 为什么每次运行都不一样呢 是不是因为线程互相之间不影响

public class FirstThraed extends Thread{
private int i;
//重写run()方法
public void run(){
for(;i<10;i++){
//当线程类继承Thread类时 可以直接调用getName()方法来返回当前线程的名
//如果想获取当前线程 直接使用this即可
//Thread对象的getName()返回当前线程的名字
System.out.println(getName() + " " + i);
}
}

public static void main(String[] args){
for(int i =0;i<10;i++){
//利用Thread的currentThread方法获取当前线程
System.out.println(Thread.currentThread().getName()+" "+i);
if(i == 5){
//创建并启动第1条线程
new FirstThraed().start();
//创建并启动第2条线程
new FirstThraed().start();

}
}
}
}

线程之前当然是互相独立的,这就是为什么有多线程和单线程的分别。
温馨提示:内容为网友见解,仅供参考
无其他回答

同一个java源代码编译执行后运行的结果不一样,只是什么原因?
要看下你的代码是什么了,如果是概率性或者有规律的生成的结果,如果每次的结果一样才奇怪。如果是一般的代码,那就有问题了。关键还是要看下你的代码。

关于java多线程的疑问,为何单步没问题的程序去除断点后运行就会有问题...
这个问题在程序正常启动的时候是不存在的。

请简要说明java中线程安全是怎么回事?
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在...

java程序主线程中开启三个线程,但运行时只有一个线程活着是怎么...
最好将同步机制贴出来。应该是操作了主线程中的变量,锁定之后造成后面两个线程的等待。

Java多线程问题总结?
多线程可以防止这个问题,多条线程同时运行,哪怕一条线程的代码执行读取数据阻塞,也不会影响其它任务的执行。(3)便于建模 这是另外一个没有这么明显的优点了。假设有一个大的任务A,单线程编程,那么就要考虑很多,建立整个程序模型比较麻烦。但是如果把这个大的任务A分解成几个小任务,任务B、任务C...

java中的线程和操作系统中的线程一样吗,多线程是多个线程同时运行还是一...
java中的线程跟操作系统的是不一样的,因为java使用了虚拟机。一个CPU一个时刻只能运行一个线程。多CPU的话,也许能让多个线程在各个CPU上同时跑,这要看线程能不能同时运行,有没有抢占资源之类的。

java多线程并发的问题
但计算机中的CPU只有一个,它没有分身术,不可能真正意义上实现同时运行这么多程序。而是采用了一种时间片轮转的方式,为每个应用程序赋予极短的时间,然后高速的在不同的程序间切换,至于每次切换到那个程序,这个要由CPU和线程的优先级来决定。线程的生命周期:创建时是初始化了这个线程,调用start方法时...

java关掉主线程 子线程会关掉吗
不会的,线程设计的初衷就是相互独立运行,互相之间不会影响,如果主线程的关闭影响子线程了,那就违背设计的初衷了

java 线程问题 为什么结果是1000
通常start方法启动的线程会稍微慢一点(因为要完成初始化,然后加到线程调度机里,最后才能进入队列等待时间片),所以一般情况下tt.m2()会先执行,然后被m1()更改,当然,你可以在cpu复合比较高的情况下试验,就会出现2000了。我想你如果在tt.m2()之前插入一些比较费时的操作,情况就会变2000了(例如...

JAVA 的线程这块咋整啊,咋也学不明白啊~~
但是进程与线程的重要区别在于线程不能够单独执行,它必须运行在处于活动状态的应用程序进程中,因此可以定义线程是程序内部的具有并发性的顺序代码流。 Unix操作系统和Microsoft Windows操作系统支持多用户、多进程的并发执行,而Java语言支持应用程序进程内部的多个执行线程的并发执行。多线程的意义在于一个应用程序的多个...

相似回答