java quasar實現纖程完整代碼實例

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章