「java多线程交替打印」多线程循环打印abc java
今天给各位分享java多线程交替打印的知识,其中也会对多线程循环打印abc java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java多线程问题。两个线程交替打印。例如第一个线程打印1,接着第二个线程打印100,接着第一个线程打印2。
- 2、JAVA双线程 用两个线程交替打印从1到100。 如:线程1 1 线程2 2
- 3、新手问题:java多线程交替运行原理(代码如下)
- 4、java 多线程编程 交替打印大小写字母的问题
java多线程问题。两个线程交替打印。例如第一个线程打印1,接着第二个线程打印100,接着第一个线程打印2。
你这样写两个线程实例t1和t2间没有交互通信,各跑各的,当然不会达到你上面说的那个结果。要想达到你上面说的那个效果,必须进行线程间通信。比如,你可以让两个线程实例都对方的引用,在run函数里执行打印的方法后,就让t2跑,t1去睡觉(sleep())。等t2打印完后,又让t1跑,让t2去睡觉,这样即可。 给你思路,代码我就不写了。
JAVA双线程 用两个线程交替打印从1到100。 如:线程1 1 线程2 2
public class Spider {
class Egg implements Runnable {
String name;
public Egg(String name) {
this.name = name;
}
Thread thread;
public void start() {
if (null == thread) {
thread = new Thread(this);
thread.setName(name);
thread.start();
}
}
public synchronized void stop() {
if (null != thread) {
thread.interrupt();
thread = null;
notifyAll();
}
}
public void run() {
Thread me = Thread.currentThread();
while (me == thread) {
if (count 99) {
stop();
break;
}
try {
Thread.sleep(50);
} catch (Exception e) {}
System.out.println(me.getName() + " " + count++);
}
}
}
int count = 1;
public Spider(int num) {
for (int i = 0; i num; i++) {
Egg egg = new Egg("线程" + (i + 1));
egg.start();
}
}
public static void main(String[] args) {
new Spider(2);
}
}
新手问题:java多线程交替运行原理(代码如下)
你说的交替运行是什么意思? 如果执行的话 System.out.println(i)和System.out.println("这是compute1:" + i)这两个打印语句是会交替打印的。至于t.start()和t1.start()呢 是按顺序。main方法看作是一个主线程。它依次往下执行,当执行t.start()的时候,开启t线程,此时主线程和t线程同时运行(可能t线程已经开始打印i去了)。然后主线程再接着往下运行执行t1.start()。此时主线程执行完了,t和t1线程同时运行。
至于那个什么时间片就CPU分配给各个程序的时间,每个线程被分配一个时间段来运行,由于时间特别快,你会认为它们是同时进行的,但其实是按时间一个一个来的。
java 多线程编程 交替打印大小写字母的问题
这个就是多线程的一个考察:
public class RunTest {
public static void main(String[] args) {
Myprint mp = new Myprint();
new Capital(mp).start();
new Lowercase(mp).start();
}
}
class Myprint {
boolean flag = true;
int i = 0;
int j = 0;
public void Da() {
while (i 26) {
if (flag) {
System.out.print((char) ('A' + i));
i++;
this.flag = false;
}
}
}
public void Xiao() {
while (j 26) {
if (!flag) {
System.out.print((char) ('a' + j));
j++;
this.flag = true;
}
}
}
}
class Capital extends Thread {
Myprint my = null;
public Capital(Myprint my) {
this.my = my;
}
@Override
public void run() {
my.Da();//打印大写
}
}
class Lowercase extends Thread {
Myprint my = null;
public Lowercase(Myprint my) {
this.my = my;
}
@Override
public void run() {
my.Xiao();//打印小写
}
}
关于java多线程交替打印和多线程循环打印abc java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-03,除非注明,否则均为
原创文章,转载请注明出处。