diff --git a/JavaMultiThreadInAction/src/data/ch4case02/InputFiles.zip b/JavaMultiThreadInAction/src/data/ch4case02/InputFiles.zip new file mode 100644 index 0000000..4aa8617 Binary files /dev/null and b/JavaMultiThreadInAction/src/data/ch4case02/InputFiles.zip differ diff --git a/JavaMultiThreadInAction/src/data/ch4case02/Readme.txt b/JavaMultiThreadInAction/src/data/ch4case02/Readme.txt new file mode 100644 index 0000000..b69db5b --- /dev/null +++ b/JavaMultiThreadInAction/src/data/ch4case02/Readme.txt @@ -0,0 +1,5 @@ +运行程序前请先将InputFiles.zip解压缩到该文件所在的目录。 + +运行程序的示例命令: + +java -Xms96m -Xmx128m -XX:NewSize=64m -XX:SurvivorRatio=32 -Dx.stat.task=io.github.viscent.mtia.ch4.case02.MultithreadedStatTask -Dx.input.buffer=8192 -Dx.block.size=2000 io.github.viscent.mtia.ch4.case02.CaseRunner4_2 diff --git a/JavaMultiThreadInAction/src/data/ch4case02/in.dat b/JavaMultiThreadInAction/src/data/ch4case02/in.dat new file mode 100644 index 0000000..f82e44a --- /dev/null +++ b/JavaMultiThreadInAction/src/data/ch4case02/in.dat @@ -0,0 +1,217 @@ +ESB_interface_201603300847.log +ESB_interface_201603300848.log +ESB_interface_201603300849.log +ESB_interface_201603300850.log +ESB_interface_201603300851.log +ESB_interface_201603300852.log +ESB_interface_201603300853.log +ESB_interface_201603300854.log +ESB_interface_201603300855.log +ESB_interface_201603300856.log +ESB_interface_201603300857.log +ESB_interface_201603300858.log +ESB_interface_201603300859.log +ESB_interface_201603300900.log +ESB_interface_201603300901.log +ESB_interface_201603300902.log +ESB_interface_201603300903.log +ESB_interface_201603300904.log +ESB_interface_201603300905.log +ESB_interface_201603300906.log +ESB_interface_201603300907.log +ESB_interface_201603300908.log +ESB_interface_201603300909.log +ESB_interface_201603300910.log +ESB_interface_201603300911.log +ESB_interface_201603300912.log +ESB_interface_201603300913.log +ESB_interface_201603300914.log +ESB_interface_201603300915.log +ESB_interface_201603300916.log +ESB_interface_201603300917.log +ESB_interface_201603300918.log +ESB_interface_201603300919.log +ESB_interface_201603300920.log +ESB_interface_201603300921.log +ESB_interface_201603300922.log +ESB_interface_201603300923.log +ESB_interface_201603300924.log +ESB_interface_201603300925.log +ESB_interface_201603300926.log +ESB_interface_201603300927.log +ESB_interface_201603300928.log +ESB_interface_201603300929.log +ESB_interface_201603300930.log +ESB_interface_201603300931.log +ESB_interface_201603300932.log +ESB_interface_201603300933.log +ESB_interface_201603300934.log +ESB_interface_201603300935.log +ESB_interface_201603300936.log +ESB_interface_201603300937.log +ESB_interface_201603300938.log +ESB_interface_201603300939.log +ESB_interface_201603300940.log +ESB_interface_201603300941.log +ESB_interface_201603300942.log +ESB_interface_201603300943.log +ESB_interface_201603300944.log +ESB_interface_201603300945.log +ESB_interface_201603300946.log +ESB_interface_201603300947.log +ESB_interface_201603300948.log +ESB_interface_201603300949.log +ESB_interface_201603300950.log +ESB_interface_201603300951.log +ESB_interface_201603300952.log +ESB_interface_201603300953.log +ESB_interface_201603300954.log +ESB_interface_201603300955.log +ESB_interface_201603300956.log +ESB_interface_201603300957.log +ESB_interface_201603300958.log +ESB_interface_201603300959.log +ESB_interface_201603301000.log +ESB_interface_201603301001.log +ESB_interface_201603301002.log +ESB_interface_201603301003.log +ESB_interface_201603301004.log +ESB_interface_201603301005.log +ESB_interface_201603301006.log +ESB_interface_201603301007.log +ESB_interface_201603301008.log +ESB_interface_201603301009.log +ESB_interface_201603301010.log +ESB_interface_201603301011.log +ESB_interface_201603301012.log +ESB_interface_201603301013.log +ESB_interface_201603301014.log +ESB_interface_201603301015.log +ESB_interface_201603301016.log +ESB_interface_201603301017.log +ESB_interface_201603301018.log +ESB_interface_201603301019.log +ESB_interface_201603301020.log +ESB_interface_201603301021.log +ESB_interface_201603301022.log +ESB_interface_201603301023.log +ESB_interface_201603301024.log +ESB_interface_201603301025.log +ESB_interface_201603301026.log +ESB_interface_201603301027.log +ESB_interface_201603301028.log +ESB_interface_201603301029.log +ESB_interface_201603301030.log +ESB_interface_201603301031.log +ESB_interface_201603301032.log +ESB_interface_201603301033.log +ESB_interface_201603301034.log +ESB_interface_201603301035.log +ESB_interface_201603301036.log +ESB_interface_201603301037.log +ESB_interface_201603301038.log +ESB_interface_201603301039.log +ESB_interface_201603301040.log +ESB_interface_201603301041.log +ESB_interface_201603301042.log +ESB_interface_201603301043.log +ESB_interface_201603301044.log +ESB_interface_201603301045.log +ESB_interface_201603301046.log +ESB_interface_201603301047.log +ESB_interface_201603301048.log +ESB_interface_201603301049.log +ESB_interface_201603301050.log +ESB_interface_201603301051.log +ESB_interface_201603301052.log +ESB_interface_201603301053.log +ESB_interface_201603301054.log +ESB_interface_201603301055.log +ESB_interface_201603301056.log +ESB_interface_201603301057.log +ESB_interface_201603301058.log +ESB_interface_201603301059.log +ESB_interface_201603301100.log +ESB_interface_201603301101.log +ESB_interface_201603301102.log +ESB_interface_201603301103.log +ESB_interface_201603301104.log +ESB_interface_201603301105.log +ESB_interface_201603301106.log +ESB_interface_201603301107.log +ESB_interface_201603301108.log +ESB_interface_201603301109.log +ESB_interface_201603301110.log +ESB_interface_201603301111.log +ESB_interface_201603301112.log +ESB_interface_201603301113.log +ESB_interface_201603301114.log +ESB_interface_201603301115.log +ESB_interface_201603301116.log +ESB_interface_201603301117.log +ESB_interface_201603301118.log +ESB_interface_201603301119.log +ESB_interface_201603301120.log +ESB_interface_201603301121.log +ESB_interface_201603301122.log +ESB_interface_201603301123.log +ESB_interface_201603301124.log +ESB_interface_201603301125.log +ESB_interface_201603301126.log +ESB_interface_201603301127.log +ESB_interface_201603301128.log +ESB_interface_201603301129.log +ESB_interface_201603301130.log +ESB_interface_201603301131.log +ESB_interface_201603301132.log +ESB_interface_201603301133.log +ESB_interface_201603301134.log +ESB_interface_201603301135.log +ESB_interface_201603301136.log +ESB_interface_201603301137.log +ESB_interface_201603301138.log +ESB_interface_201603301139.log +ESB_interface_201603301140.log +ESB_interface_201603301141.log +ESB_interface_201603301142.log +ESB_interface_201603301143.log +ESB_interface_201603301144.log +ESB_interface_201603301145.log +ESB_interface_201603301146.log +ESB_interface_201603301147.log +ESB_interface_201603301148.log +ESB_interface_201603301149.log +ESB_interface_201603301150.log +ESB_interface_201603301151.log +ESB_interface_201603301152.log +ESB_interface_201603301153.log +ESB_interface_201603301154.log +ESB_interface_201603301155.log +ESB_interface_201603301156.log +ESB_interface_201603301157.log +ESB_interface_201603301158.log +ESB_interface_201603301159.log +ESB_interface_201603301200.log +ESB_interface_201603301201.log +ESB_interface_201603301202.log +ESB_interface_201603301203.log +ESB_interface_201603301204.log +ESB_interface_201603301205.log +ESB_interface_201603301206.log +ESB_interface_201603301207.log +ESB_interface_201603301208.log +ESB_interface_201603301209.log +ESB_interface_201603301210.log +ESB_interface_201603301211.log +ESB_interface_201603301212.log +ESB_interface_201603301213.log +ESB_interface_201603301214.log +ESB_interface_201603301215.log +ESB_interface_201603301216.log +ESB_interface_201603301217.log +ESB_interface_201603301218.log +ESB_interface_201603301219.log +ESB_interface_201603301220.log +ESB_interface_201603301221.log +ESB_interface_201603301222.log +ESB_interface_201603301223.log diff --git a/JavaMultiThreadInAction/src/io/github/viscent/mtia/ch4/case02/CaseRunner4_2.java b/JavaMultiThreadInAction/src/io/github/viscent/mtia/ch4/case02/CaseRunner4_2.java index 995a8f7..513b7c2 100644 --- a/JavaMultiThreadInAction/src/io/github/viscent/mtia/ch4/case02/CaseRunner4_2.java +++ b/JavaMultiThreadInAction/src/io/github/viscent/mtia/ch4/case02/CaseRunner4_2.java @@ -9,15 +9,12 @@ 本代码可以从以下网址下载: https://github.com/Viscent/javamtia http://www.broadview.com.cn/31065 -*/ + */ package io.github.viscent.mtia.ch4.case02; import io.github.viscent.mtia.util.AppWrapper; import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -27,22 +24,18 @@ import java.util.concurrent.atomic.AtomicBoolean; /** - * - 参考命令如下。其中,JVM系统属性x.std.in的值需要根据实际情况修改,将其修改为每行包含一个接口日志文件名的文本文件。
+ * 运行程序前请先解压缩数据文件: src/data/ch4case02/InputFiles.zip。
+ * 参考命令如下。 * java -Xms96m -Xmx128m -XX:NewSize=64m -XX:SurvivorRatio=32 - * -Dx.std.in="/tmp/in.dat" - * -Dx.stat.task=io.github.viscent.mtia.ch4.case02.MultithreadedStatTask - * -Dx.input.buffer=8192 -Dx.block.size=2000 - * io.github.viscent.mtia.ch4.case02.CaseRunner + * -Dx.stat.task=io.github.viscent.mtia.ch4.case02.MultithreadedStatTask -Dx.input.buffer=8192 + * -Dx.block.size=2000 io.github.viscent.mtia.ch4.case02.CaseRunner4_2 * * @author Viscent Huang */ public class CaseRunner4_2 { - // 日志文件所在目录 - private static final String LOG_BASE_DIR = "/home/viscent/tmp/tps/"; public static void main(String[] args) throws Exception { - AppWrapper.invokeMain0(CaseRunner4_2.class, args, true); + AppWrapper.invokeMain0(CaseRunner4_2.class, args, false); } public static void main0(String[] args) throws Exception { @@ -93,8 +86,10 @@ private static Runnable createTask(InputStream in, int sampleInterval, private static InputStream createInputStream() { final AtomicBoolean readerClosed = new AtomicBoolean(false); + InputStream dataIn = CaseRunner4_2.class + .getResourceAsStream("/data/ch4case02/in.dat"); final BufferedReader bfr = new BufferedReader(new InputStreamReader( - System.in)) { + dataIn)) { @Override public void close() throws IOException { super.close(); @@ -127,8 +122,9 @@ public InputStream nextElement() { InputStream in = null; if (null != fileName) { try { - in = new FileInputStream(new File(LOG_BASE_DIR + fileName)); - } catch (FileNotFoundException e) { + in = CaseRunner4_2.class.getResourceAsStream("/data/ch4case02/" + + fileName); + } catch (Exception e) { e.printStackTrace(); } }