pom:
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者組織的唯一標誌,並且配置時生成的路徑也是由此生成, 如com.companyname.project-group,maven會將該項目打成的jar包放本地路徑:/com/companyname/project-group -->
<groupId>com.zxl</groupId>
<!-- 項目的唯一ID,一個groupId下面可能多個項目,就是靠artifactId來區分的 -->
<artifactId>hello-quasar</artifactId>
<!-- 版本號 -->
<version>1.0</version>
<!-- 在setting.xml中已經進行全局配置了 此處不用再配置 -->
<!-- <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<encoding>UTF-8</encoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties> -->
<dependencies>
<!-- https://mvnrepository.com/artifact/co.paralleluniverse/quasar-core -->
<dependency>
<groupId>co.paralleluniverse</groupId>
<artifactId>quasar-core</artifactId>
<version>0.7.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 使用maven-assembly-plugin打包成可執行的jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
com.zxl.quasar.HelloFiberMsb
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
<!-- 使用spring-boot-maven-plugin打包成可執行的jar -->
<!-- <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>spring-boot</classifier>
<mainClass>
com.zxl.quasar.HelloFiberMsb
</mainClass>
</configuration>
</execution>
</executions>
</plugin> -->
</plugins>
</build>
</project>
java代碼:
package com.zxl.quasar;
import co.paralleluniverse.fibers.Fiber;
import co.paralleluniverse.fibers.SuspendExecution;
import co.paralleluniverse.strands.SuspendableRunnable;
public class HelloFiberMsb {
public static void main(String[] args) {
System.out.println("===================================");
long start = System.currentTimeMillis();
for (int k = 0; k < 10000; k++) {
Fiber<Void> fiber = new Fiber<Void>(new SuspendableRunnable(){
public void run() throws SuspendExecution,InterruptedException{
calc();
}
});
fiber.start();
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
static void calc(){
int result = 0;
for (int i = 0; i < 10000; i++) {
for (int j = 0; j < 200; j++) {
result+=j;
}
}
}
}
測試:要用到javaagent