next

委托的多线程方法BeginInvoke

徘徊边缘 提交于 2021-02-12 18:59:00
同步方法和异步方法: 同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果。(比如烧水泡茶,需要等水烧开了才能继续泡茶) 异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作。(比如烧水做饭,当水烧着的时候,还可以做饭) 定义一个下载的方法: private void Download( string filename) { Console.WriteLine($ " 开始Download {filename}******当前线程:{Thread.CurrentThread.ManagedThreadId} " ); Thread.Sleep( new Random().Next( 5 , 10 ) * 1000 ); Console.WriteLine($ " Download {filename} 完成******当前线程:{Thread.CurrentThread.ManagedThreadId} " ); } 使用同步方法调用: Console.WriteLine($ " 下载开始*******当前线程:{Thread.CurrentThread.ManagedThreadId} " ); for ( int i = 0 ; i < 3 ; i++ ) { string file = " 文件 " + i; this .Download

从零开始搭建后台管理系统(一)--创建SpringBoot项目

不打扰是莪最后的温柔 提交于 2021-02-12 18:58:42
最近我在搭建一个SpringBoot的后台管理系统,写到一半想起来博客好像很久很久没更新了,所以准备把这个项目的开发过程记录到博客系统里,这个系统现在已经集成了Mysql、Mybatis-Plus、Redis、Shiro、Druid、lombok。这个系统我开发了两个星期了,主要时间花在Shiro上了,现在Shrio使用Redis作为Catch和Session存储器,未来准备集成Kafka作为日志记录系统,把日志数据写到数据库里。 第一步我们要创建一个SpringBoot项目,我个人习惯使用IDEA,所以使用IDEA创建SpringBoot项目。 打开IDEA,点击File->New->Project。然后选择SpringInitializr,点next,配置项目信息。我自己本地装的还是JDK8,所以JavaVersion就选8。配置信息配置好之后,就要选择引用的包,我们到时候自己在pom文件里添加就行,继续next,配置项目名称。最后配置一下项目名称和创建地址,我们就搭建成了。 这个是项目的地址 https://github.com/Raindtop/Spring-Backstage,这个后台搭建的所有代码都在这里面。 来源: oschina 链接: https://my.oschina.net/u/4109273/blog/4952473

Vert.x初体验

China☆狼群 提交于 2021-02-12 17:41:56
Vert .x 什么是 Vert .x ? Vert.x框架基于事件和异步,依托于全异步Java服务器Netty,并扩展了很多其他特性,以其轻量、高性能、支持多语言开发 Hello world 创建一个简单的项目 https://start.vertx.io/ 无需添加任何依赖 public class MainVerticle extends AbstractVerticle { @Override public void start(Promise<Void> startPromise) throws Exception { vertx.createHttpServer().requestHandler(req -> { req.response() .putHeader("content-type", "text/plain") .end("Hello from Vert.x!"); }).listen(8888, http -> { if (http.succeeded()) { startPromise.complete(); System.out.println("HTTP server started on port 8888"); } else { startPromise.fail(http.cause()); } }); } 这个代码第一眼看上去就很复杂

for 、foreach 、iterator 三种遍历方式的比较

拥有回忆 提交于 2021-02-12 09:57:40
习惯用法 for、foreach循环、iterator迭代器 都是我们常用的一种遍历方式,你可以用它来遍历任何东西:包括数组、集合等 for 惯用法: List<String> list = new ArrayList<String>(); String[] arr = new String[]{"1,2,3,4"}; for(int i = 0;i < arr.length;i++){ System.out.println(arr[i]); } for(int i = 0;i < list.size();i++){ System.out.println(list.get(i)); } foreach 惯用法: String[] arr = new String[]{"1,2,3,4"}; List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); for(String str : arr){ System.out.println(str); } for (String item : list) { System.out.println(item); } Iterator 惯用法: Iterator<String> it = list.iterator(); while (it.hasNext

2019icpc-徐州网络赛

纵饮孤独 提交于 2021-02-12 09:11:14
B. hxc写的   AC code: #pragma GCC optimize(2) #include <cstdio> #include <queue> #include < string > #include <cstring> #include <algorithm> #include <cstdlib> #include <iostream> #include <iomanip> #include <cmath> #include <vector> #include < set > #include <map> #include <fstream> #include <cassert> #define ll long long #define R register int #define I inline void #define lc c[x][0] #define rc c[x][1] using namespace std; const int INF = 0x3f3f3f3f ; const int maxn = 1e6 + 10 ; int n,q; inline int read() { int x= 0 ,f= 0 ; char ch= 0 ; while (!isdigit(ch)) {f|=ch== ' - ' ;ch= getchar();}

Ambari 2.7.3.0安装新组件

两盒软妹~` 提交于 2021-02-12 06:48:50
Ambari 2.7.3.0安装新组件和之前版本略有不同,本文将简述安装新组件的简单过程。 前提是大家已经安装好Ambari 2.7.3.0 这时候由于有一些组件没有添加,就需要安装新的组件。 首先我们登录到Ambari中。 然后选择左下角 Stack and Versions 在这个页面可以看到我们安装过的服务,我们选择superset Add Service添加服务 这里会显示之前安装的服务,之前安装的是修改不了的,我们选择next进行下一步 这里选择安装在哪台机器,可以根据机器的具体情况进行分配 这一步也是不用修改的: 设置一些属性,主要是密码,密码是必须设置的,设置完才能通过,其他的一些设置可以稍后修改 选择部署,开始进行安装部署 耐心等待安装: 可以点进去查看日志,分为正常的log和错误log,如果报错注意查看错误原因 等待安装成功,如果失败查看log进行解决 完成,提示重启组件 可以看到已经安装并启动成功了,可以进入查看 更多实时计算,Flink,Kafka等相关技术博文,欢迎关注实时流式计算 本文分享自微信公众号 - 实时流式计算(RealtimeBigdata)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina

【java基础】简单的链表

有些话、适合烂在心里 提交于 2021-02-12 04:51:24
   链表最基本的数据结构: 1、包含一个存储数据的单元; 2、还必须存储指向下一元素的信息。 由以上两部分组成的存储映像成为节点,N个节点连在一起就是链表。 首先定义一个节点: /** * 自定义一个节点类 */ class Node { // 本节点指向的下一个节点(单链表只包含下一节点) Node next = null ; // 本节点存储的数据 int data; public Node( int data) { this .data = data; } } 当节点只包含其后继节点的信息,链表就称之为单链表。定义一个链表,实现链表简单的数据添加,删除排序操作。 /** * 自定义一个链表类 */ class MyLinkedList { // 链表的头 Node head = null ; /** * 向列表中插入数据 * * @param d * 数据内容 */ public void addNode( int d) { Node newNode = new Node(d); if (head == null ) { head = newNode; return ; } Node tmp = head; while (tmp.next != null ) { tmp = tmp.next; } tmp.next = newNode; } /** *

力扣(LeetCode)两数相加 个人题解

流过昼夜 提交于 2021-02-12 04:43:49
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 题目是比较基础的,题意也十分清晰,可以模拟人工手算的方式达成,但是要注意遇到空指针的处理,应该置0还是退出循环。(一个链表的next为null不代表另外一个也为Null,只有两个都Null了,才说明两个加到结尾了。) 特别注意的是,当加法完毕且进位标志位为1时,需要补充一个进位位。 根据官方给出的题解和之前做题的经验,在开头使用哑节点可以有效避免了许多复杂判定。 官方题解链接: https://leetcode-cn.com/problems/add-two-numbers/solution/ 代码如下: class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode dummyhead = new ListNode(0 ); ListNode q =l1,p=l2,mov=

JavaScript 你必须掌握的概念(上)

南楼画角 提交于 2021-02-12 02:05:31
不可变的原始值和可变的对象引用 当JavaScript中指定的值是原始值(基本类型)即 Boolean,null,undefined,String 和 Number 时,将分配实际值。 原始值是不可更改的, 任何方法都无法更改或突变一个原始值。 let str1 = 'My string' ; let str2 = str1; str2 = 'My new string' ; console.log(str1); // 'My string' console.log(str2); // 'My new string' 但是,当指定的值是Array,Function 或 Object 时,将分配内存中对象的引用。 对象和原始值不同,首先它们是可变的,它们的值是可修改的: let obj1 = { name: 'Jim' } let obj2 = obj1; obj2.name = 'John' ; console.log(obj1); // { name: 'John' } console.log(obj2); // { name: 'John' } 原始值 的比较是值的比较,只有在它们的值相等时它们才相等。而 对象 的比较均是引用的比较,对象值都是引用,当且仅当它们引用同一个基对象时,它们才相等。 //原始值的比较 let str1 = "hello" ; let str2 =

把旧系统迁移到.Net Core 2.0 日记(5) Razor/HtmlHelper/资源文件

。_饼干妹妹 提交于 2021-02-12 00:37:06
net core 的layout.cshtml文件有变化, 区分开发环境和非开发环境. 开发环境用的是非压缩的js和css, 正式环境用压缩的js和css <environment include= " Development " > <link rel= " stylesheet " href= " ~/lib/bootstrap/dist/css/bootstrap.css " /> <link rel= " stylesheet " href= " ~/css/site.css " /> </environment> <environment exclude= " Development " > <link rel= " stylesheet " href= " https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css " asp -fallback-href= " ~/lib/bootstrap/dist/css/bootstrap.min.css " asp -fallback-test- class = " sr-only " asp-fallback-test-property= " position " asp-fallback-test-value= " absolute " />