java - Java 显示线程同时工作
问题描述
我第一次在 Java 中使用线程,我只是想说服自己他们做我认为他们正在做的事情。
我希望以下代码同时运行两个循环,因此我希望输出是计数器的混合。但是,每次我运行代码时,我都会得到从 1 到 3000 的直接计数,所有数字都按顺序排列。
我错过了什么吗?有没有更好的方法来演示两个线程实际上同时工作?
public class ThreadDemo {
public static void main(String[] args) {
Loop1 loop1 = new Loop1();
Loop2 loop2 = new Loop2();
loop1.run();
loop2.run();
}
public static class Loop1 implements Runnable {
@Override
public void run() {
for(int i= 1; i <= 1000; i++){
System.out.println(i);
}
}
public static class Loop2 implements Runnable {
@Override
public void run() {
for(int i= 2000; i <= 3000; i++){
System.out.println(i);
}
}
}
解决方案
要执行一个线程,您需要使用该start()
方法。当您调用run()
它时,它只是在调用它的同一线程上的标准方法调用。
您还应该尝试在join()
最后调用您的线程。
推荐阅读
- mysql - PHP+MYSQL中的排序查询性能
- jquery - toggleClass() 无法正常工作
- xml - XSF-FO .How 忽略某些模板中的静态内容?
- c# - 无法在 64 位模式下运行引用完整 .NET Framework 的 ASP.NET Core 项目
- scala - 猫效应 0.10.1 中的括号类型类
- matrix - 从八度音阶中的三列矩阵的两列中减去
- android - 在 DrawerLayout 中更改进度条大小
- javascript - 重新调整窗口大小
- mysql - 迭代数据集并插入 MySQL 表
- java - 为什么我的 Java 程序只返回 ArrayList 中的最后一个字符串