「java分段执行」java实现分段函数

博主:adminadmin 2022-12-03 13:24:06 81

今天给各位分享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实现分段函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-03,除非注明,否则均为首码项目网原创文章,转载请注明出处。