java两段代码交替执行 java怎么让代码并行

Java项目怎样让另一个类中的代码跟这个类里面的代码一起执行1、在Java项目中新建一个类 。然后在调用类中先进行被调用类实例化 , 然后通过实例化的对象访问 。
2、在Java项目中新建一个类,将该类中需要被调用的方法设置为静态(static),加了static后,就可以用类名直接调用 。然后在调用类中直接通过类名进行访问 。3、这样就可以让Java项目另一个类中的代码跟这个类里面的代码一起执行了 。
JAVA中两个线程为什么会交替执行?java虚拟机采用抢占式调度模型java两段代码交替执行,是指优先让可运行池中优先级高的线程占用CPU,如果可运行池中的线程优先级相同,那么就随机选择一个线程,使其占用CPU 。处于运行状态的线程会一直运行,直至它不得不放弃CPU 。
一个线程会因为以下原因而放弃CPU 。
1 java虚拟机让当前线程暂时放弃CPU,转到就绪状态,使其它线程获得运行机会 。
2 当前线程因为某些原因而进入阻塞状态
3 线程结束运行
需要注意的是,线程的调度不是跨平台的,它
【java两段代码交替执行 java怎么让代码并行】不仅仅取决于java虚拟机,还依赖于操作系统 。在某些操作系统中,只要运行中的线程没有遇到阻塞,就不会放弃CPU;在某些操作系统中,即使线程没有遇到阻塞,也会运行一段时间后放弃CPU,给其它线程运行的机会 。
java的线程调度是不分时的 , 同时启动多个线程后 , 不能保证各个线程轮流获得均等的CPU时间片 。
随机两个字是关键 ,导致同样优先级的thread在访问相同对象的时候存在风险,所以java后来才引入java两段代码交替执行了synchonized 关键字
谁帮我实现以下Java中的线程交替执行控制,要求按顺序输出1到100,代码如下 。稍微修改下未测试
package com.leejiliang.HomeworkDemo2;
/**
* 定义打印输出类java两段代码交替执行 , 定义两个数据输出方法java两段代码交替执行,分别用于输出偶数和奇数
*
* @author Administrator even偶数 uneven奇数
*/
class PrintNumber {
boolean isEven = true;
public void printEven() {
for (int i = 0; i = 100; i = i2) {
if (i % 2 == 0) {
synchronized (this) {
while (!isEven) {
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("偶数java两段代码交替执行:"i);
isEven = false;
this.notify();
}
}
}
}
// 输出1到100之间java两段代码交替执行的奇数
public void printUnEven() {
for (int i = 1; i = 99; i = i1) {
if (i % 2 != 0) {
synchronized (this) {
while (isEven) {
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("奇数:"i);
isEven = true;
this.notify();
}
}
}
}
}
/**
*
* @author Administrator 定义输出偶数的线程类
*/
class ThreadForEven implements Runnable {
private PrintNumber pn = null;
public ThreadForEven(PrintNumber pn) {
this.pn = pn;
}
@Override
public void run() {
pn.printEven();
}
}
/**
* 定义输出奇数的线程类
*
* @author Administrator
*
*/
class ThreadForUneven implements Runnable {
private PrintNumber pn = null;
public ThreadForUneven(PrintNumber pn) {
this.pn = pn;
}
@Override
public void run() {
pn.printUnEven();
}
}
// 主函数java两段代码交替执行,执行两个线程
class ZeroToOneHundred {
public static void main(String[] args) {
PrintNumber pn = new PrintNumber();
ThreadForEven te = new ThreadForEven(pn);
ThreadForUneven tu = new ThreadForUneven(pn);
Thread threadeven = new Thread(te);
Thread threaduneven = new Thread(tu);
threadeven.start();
threaduneven.start();
}
}
java两段代码交替执行的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于java怎么让代码并行、java两段代码交替执行的信息别忘了在本站进行查找喔 。

    推荐阅读