「java分段执行」java实现分段函数
今天给各位分享java分段执行的知识,其中也会对java实现分段函数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
Java中如何对list进行分段操作
import java.util.ArrayList;
import java.util.List;
public class listTest {
public static void main(String[] args) {
ListString list = new ArrayListString();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
list.add("five");
list.add("six");
list.add("seven");
intftest = 3;//每次取的数据
intsize = list.size();
inttemp = size / ftest + 1;
boolean special = size % ftest == 0;
ListString cutList = null;
for(int i = 0; i temp; i++) {
if (i == temp - 1) {
if (special) {
break;
}
cutList = list.subList(ftest * i, size);
}else {
cutList = list.subList(ftest * i, ftest* (i + 1));
}
System.out.println("第" + (i + 1) + "组:" + cutList.toString());
}
}
}
得出的结果为:
第1组:[one, two,three]
第2组:[four, five,six]
第3组:[seven]
如果ftest = 1,得出的结果为:
第1组:[one]
第2组:[two]
第3组:[three]
第4组:[four]
第5组:[five]
第6组:[six]
第7组:[seven]
java分段函数
按照你的要求编写的分段函数的Java程序如下
import java.util.Scanner;
public class Segment {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
double x=sc.nextDouble();
double y;
if(x-5){
y=3*x*x+2*x-1;
}else if(x=-5 x=5){
y=x*Math.sin(x)+Math.pow(2,x);
}else{
y=Math.sqrt(x-5)+Math.log10(x);
}
System.out.println("y="+y);
}
}
运行结果
输入 6
输出 y=1.7781512503836436
java多个线程执行的顺序是按顺序执行的吗
这个要分段来实现, 第一步是让线程同步,第二部是让线程有顺序。
同步:我们可以用synchronized来解决。
Java线程同步原理: java会为每个object对象分配一个monitor,当某个对象的同步方法(synchronized methods )被多个线程调用时,该对象的monitor将负责处理这些访问的并发独占要求。
当一个线程调用一个对象的同步方法时,JVM会检查该对象的monitor。如果monitor没有被占用,那么这个线程就得到了monitor的占有权,可以继续执行该对象的同步方法;如果monitor被其他线程所占用,那么该线程将被挂起,直到monitor被释放。
当线程退出同步方法调用时,该线程会释放monitor,这将允许其他等待的线程获得monitor以使对同步方法的调用执行下去。就像下面这样:
public void test() {
synchronized (this) {
//做一些事
//这里只会有一个线程来调用该方法,因为只有一个this对象作为资源分配给该线程
}
}
顺序:我们可以用List来解决,因为它是有序的。我们只需要将要执行的线程放入到List中
上代码:
/**
* 让多个线程同步顺序执行的线程管理器
* @author bianrx
* @date 2012.1.18
* SynchronizedRunMultiThread
*/
public class SyncManager {
/**
* 待执行的线程集合,注意这里必须是Runnable接口类型,下面会解释
*/
private ListRunnable runnableList;
public SyncManager(){}
public SyncManager(ListRunnable runnableList) {
this.runnableList = runnableList;
}
public void setRunnable(ListRunnable runnableList) {
this.runnableList = runnableList;
}
public void run() {
//遍历代执行的线程集合
for(Runnable runnable: runnableList) {
runThread(runnable);
}
}
/**
* 按顺序同步执行多个线程
* @author bianrx
* @date 2012.1.18
* @param runnable
*/
private void runThread(Runnable runnable) {
synchronized (this) {
runnable.run();//这里需要注意的是:必须调用run方法,因为如果你调用了start方法,线程只会向JVM请求资源,但是未必就执行其中的run。
//这个方法是同步的,所以当前只有一个线程占用了this对象。
}
}
}
关于java分段执行和java实现分段函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-03,除非注明,否则均为
原创文章,转载请注明出处。