package com.niewj.concurrent; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; /** * Future和Callable例1 * @author niewj * */ public class ES_TPE_Test { public static void main(String[] args) throws InterruptedException, ExecutionException { ExecutorService executerService = Executors.newSingleThreadExecutor(); // 主线程要做两件事:1.买书; 2.报名考试 long start = System.currentTimeMillis(); // 1. 第一件事:买书 Future<Book> future = executerService.submit(new BuyBookTask()); // 定义了一个任务:买书,需要一定的时间 executerService.shutdown(); // 2. 第一件事:报名考试 报名考试花费10秒 for (int i = 1; i <= 10; i++) { Thread.sleep(1000); System.out.println("==== ==== 等报名排队等了[ " + i + " ]天了 ==== ==== "); } Book book = future.get(); System.out.println("考试报上名了; 书也买到了: " + book); long end = System.currentTimeMillis(); System.out.println("总耗时秒数: " + (end - start) / 1000); } } /** * 购买书籍任务-需要耗费一定时间:假定买书需要等7天(一秒模拟一天) * * @author niewj * */ class BuyBookTask implements Callable<Book> { final int restockDays = 7; // 等进货时间 @Override public Book call() throws Exception { for (int i = 1; i <= restockDays; i++) { Thread.sleep(1000); System.out.println("等书等了[ " + i + " ]天了。。。。。。"); } return new Book("稀缺书套装", 120.5); } } class Book { private String name; private Double price; public Book(String name, Double price) { this.name = name; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { if (this.name == null && this.price == null) { return "没有书!"; } else { return name + " 這本書 " + price + "元錢"; } } }
概述:
main方法:主线程想做两件事=两个任务:报名考试和买书
但是用一个Callable任务发起一个线程来做买书的任务-耗时7秒;
主线程自己完成报名考试的任务-耗时10秒;
相关推荐
这是marked的流行库的分支(从chjj / release-0.3.7,2017年12月1日合并合并请求#961)。 郎 目录 安装 npm install @ts-stack/markdown --save 用法 最少使用量: import { Marked } from '@ts-stack/markdown' ...
标题中的"marked-0.3.2-1.zip"表明这是一个软件库的压缩包,标记为"marked"的版本0.3.2的第一个修正版。Marked通常是一个文本解析库,用于将Markdown语法转换为HTML,它在开发文档、博客和网站中非常常见。Markdown...
npm i -g marked-toc --save 在任何降价文件中,添加<!-- toc -->要添加 TOC 的位置。 然后在命令行中,运行: toc [filename] 如果您将 toc 添加到README.md ,则无需添加[filename] ,只需运行toc 。 ...
const linkify = require ( "marked-linkify-it" ) ; // or ES Module script // import marked from "https://cdn.jsdelivr.net/gh/markedjs/marked/lib/marked.esm.js"; // import linkify from ...
标记形式 ... 从诸如[text ?input?](name)类的markdown链接生成标签和输入控件。 安装 npm install marked-forms 重大变化 从v3.0.0版本开始,该库使用插件api。...var markedForms = require ( 'marked-forms' )
var mdRenderer = require ( 'marked-to-md' ) ; var source = '# Markdown to md renderer\nHello world!' ; var tokens = marked . lexer ( source ) ; var mdToMd = parser . parse ( tokens ) ; console . log ...
marked-engine是兼容的模板引擎,用于呈现Markdown。 安装 $ npm install marked-engine 用法 将marked-engine注册marked-engine扩展名为“ .md”的文件的模板引擎。 app . engine ( 'md' , require ( 'marked-...
totalshare2java.zip,一种提供基于常用的OAuth2的第三个网站登录功能的工具。一种提供基于常用的OAuth2的第三个网站登录功能的工具。
1. 安装插件:通过npm(Node.js包管理器)在Hexo项目中安装插件,命令通常是`npm install hexo-renderer-marked-plus --save`。 2. 配置插件:在Hexo的配置文件 `_config.yml` 中,将渲染器设置为`hexo-renderer-...
npm install marked marked-terminal 例子 var marked = require ( 'marked' ) ; var TerminalRenderer = require ( 'marked-terminal' ) ; marked . setOptions ( { // Define custom renderer renderer : new ...
本项目是一款基于marked和highlight.js开发的Markdown编辑器,专为Vue项目设计。接下来,我们将深入探讨这款编辑器的关键技术和实现细节。 **一、Markdown语法** Markdown是一种轻量级的标记语言,它的设计理念是...
安装npm install marked-images用法注意:重大更改: 从 ,该库使用插件api。 var marked = require ( 'marked' ) ;var markedImages = require ( 'marked-images' ) ;// opts are optionalvar opts = { xhtml : ...
描述中提到"标记元素仅与聚合物0.5及更低版本兼容,将不推荐使用",这表明marked-element最初是为 Polymer 0.5 设计的,随着Polymer框架的发展,尤其是从0.5版本升级到0.8及更高版本时,这个元素可能不再是最优选择...
$ npm install --save marked-sanitizer-github 用法 它输出一类SanitizeState因为该清理是有状态的。 您可以通过调用getSanitizer()方法来为标记的解析器获取一个消毒剂。 它返回一个要清除的函数对象。 con
涉及的步骤如下:$ git clone https://github.com/code-plus-coffee/marked-preview.git$ cd marked-preview# NPM$ npm install or npm i# OR# Yarn$ yarn# After npm install is done$ npm start 现在可以在访问...
演示版<h2>Basic marked-calendar Demo</h2><h3>Demo</h3><marked-calendar year="2020" title="Imputacion de horas" savedata weekends legend='[ {"code": "#0F0", "label": "V", "title": "Vacaciones"}, {...
安装$ npm install hexo-renderer-marked --save 十六进制4:> = 2.0 十六进制3:> = 0.2 十六进制2:0.1.x选项您可以在_config.yml配置此插件。 marked : gfm : true pedantic : false breaks : true smartLists : ...