(十九)java多线程之ForkJoinPool

本人邮箱: kco1989@qq.com
欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco
github: https://github.com/kco1989/kco
代码已经全部托管github有需要的同学自行下载

引言

java 7提供了另外一个很有用的线程池框架,Fork/Join框架

理论

Fork/Join框架主要有以下两个类组成.

  • ForkJoinPool 这个类实现了ExecutorService接口和工作窃取算法(Work-Stealing Algorithm).它管理工作者线程,并提供任务的状态信息,以及任务的执行信息
  • ForkJoinTask 这个类是一个将在ForkJoinPool执行的任务的基类.

Fork/Join框架提供了在一个任务里执行fork()join()操作的机制和控制任务状态的方法.通常,为了实现Fork/Join任务,需要实现一个以下两个类之一的子类

  • RecursiveAction 用于任务没有返回值的场景
  • RecursiveTask 用于任务有返回值的场景.

例子 先定个小目标,1亿就太多,先赚个一百万吧

现在你是一个深圳片区的某公司高级销售主管.现在定了一个目标,就是要赚个一百,让你一个人去赚,肯定有难度的.好在有一般手下,把目标缩小,让小弟们去赚,我们坐等拿钱.ok,开始编程

  • 首先我们要定义个赚钱任务 MakeMoneyTask,如果要赚钱的目标小于最小目标,比如十万,那么就自己去完成,否则,就把任务分给小弟们去做.
public class MakeMoneyTask extends RecursiveTask<Integer>{private static final int MIN_GOAL_MONEY = 100000;private int goalMoney;private String name;private static final AtomicLong employeeNo = new AtomicLong();public MakeMoneyTask(int goalMoney){this.goalMoney = goalMoney;this.name = "员工" + employeeNo.getAndIncrement() + "号";}@Overrideprotected Integer compute() {if (this.goalMoney < MIN_GOAL_MONEY){System.out.println(name + ": 老板交代了,要赚 " + goalMoney + " 元,为了买车买房,加油吧....");return makeMoney();}else{int subThreadCount = ThreadLocalRandom.current().nextInt(10) + 2;System.out.println(name + ": 上级要我赚 " + goalMoney + ", 有点小多,没事让我" + subThreadCount + "个手下去完成吧," +"每人赚个 " + Math.ceil(goalMoney * 1.0 / subThreadCount) + "元应该没问题...");List<MakeMoneyTask> tasks = new ArrayList<>();for (int i = 0; i < subThreadCount; i ++){tasks.add(new MakeMoneyTask(goalMoney / subThreadCount));}Collection<MakeMoneyTask> makeMoneyTasks = invokeAll(tasks);int sum = 0;for (MakeMoneyTask moneyTask : makeMoneyTasks){try {sum += moneyTask.get();} catch (Exception e) {e.printStackTrace();}}System.out.println(name + ": 嗯,不错,效率还可以,终于赚到 " + sum + "元,赶紧邀功去....");return sum;}}private Integer makeMoney(){int sum = 0;int day = 1;try {while (true){Thread.sleep(ThreadLocalRandom.current().nextInt(500));int money = ThreadLocalRandom.current().nextInt(MIN_GOAL_MONEY / 3);System.out.println(name + ": 在第 " + (day ++) + " 天赚了" + money);sum += money;if (sum >= goalMoney){System.out.println(name + ": 终于赚到 " + sum + " 元, 可以交差了...");break;}}} catch (InterruptedException e) {e.printStackTrace();}return sum;}
}
  • 最后我们写一个测试类
public class TestMain {public static void main(String[] args) throws ExecutionException, InterruptedException {ForkJoinPool pool = new ForkJoinPool();ForkJoinTask<Integer> task = pool.submit(new MakeMoneyTask(1000000));do {try {TimeUnit.MILLISECONDS.sleep(5);}catch (InterruptedException e){e.printStackTrace();}}while (!task.isDone());pool.shutdown();System.out.println(task.get());}
}

运作之后结果如下:

员工0号: 上级要我赚 1000000, 有点小多,没事让我10个手下去完成吧,每人赚个 100000.0元应该没问题...
员工1号: 上级要我赚 100000, 有点小多,没事让我7个手下去完成吧,每人赚个 14286.0元应该没问题...
员工11号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工10号: 上级要我赚 100000, 有点小多,没事让我5个手下去完成吧,每人赚个 20000.0元应该没问题...
员工18号: 老板交代了,要赚 20000 元,为了买车买房,加油吧....
员工9号: 上级要我赚 100000, 有点小多,没事让我3个手下去完成吧,每人赚个 33334.0元应该没问题...
员工23号: 老板交代了,要赚 33333 元,为了买车买房,加油吧....
员工22号: 老板交代了,要赚 20000 元,为了买车买房,加油吧....
员工22号: 在第 1 天赚了31432
员工22号: 终于赚到 31432 元, 可以交差了...
员工21号: 老板交代了,要赚 20000 元,为了买车买房,加油吧....
员工18号: 在第 1 天赚了32005
员工18号: 终于赚到 32005 元, 可以交差了...
员工19号: 老板交代了,要赚 20000 元,为了买车买房,加油吧....
员工23号: 在第 1 天赚了6166
员工21号: 在第 1 天赚了15433
员工19号: 在第 1 天赚了23419
员工19号: 终于赚到 23419 元, 可以交差了...
员工20号: 老板交代了,要赚 20000 元,为了买车买房,加油吧....
员工20号: 在第 1 天赚了10376
员工11号: 在第 1 天赚了11808
员工21号: 在第 2 天赚了31059
员工21号: 终于赚到 46492 元, 可以交差了...
员工8号: 上级要我赚 100000, 有点小多,没事让我4个手下去完成吧,每人赚个 25000.0元应该没问题...
员工26号: 老板交代了,要赚 25000 元,为了买车买房,加油吧....
员工11号: 在第 2 天赚了11902
员工11号: 终于赚到 23710 元, 可以交差了...
员工12号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工23号: 在第 2 天赚了9077
员工20号: 在第 2 天赚了30386
员工20号: 终于赚到 40762 元, 可以交差了...
员工10号: 嗯,不错,效率还可以,终于赚到 174110元,赶紧邀功去....
员工7号: 上级要我赚 100000, 有点小多,没事让我10个手下去完成吧,每人赚个 10000.0元应该没问题...
员工30号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工12号: 在第 1 天赚了31271
员工12号: 终于赚到 31271 元, 可以交差了...
员工26号: 在第 1 天赚了11631
员工13号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工26号: 在第 2 天赚了10160
员工30号: 在第 1 天赚了10786
员工30号: 终于赚到 10786 元, 可以交差了...
员工31号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工31号: 在第 1 天赚了15201
员工31号: 终于赚到 15201 元, 可以交差了...
员工32号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工26号: 在第 3 天赚了32642
员工26号: 终于赚到 54433 元, 可以交差了...
员工27号: 老板交代了,要赚 25000 元,为了买车买房,加油吧....
员工23号: 在第 3 天赚了33072
员工23号: 终于赚到 48315 元, 可以交差了...
员工24号: 老板交代了,要赚 33333 元,为了买车买房,加油吧....
员工24号: 在第 1 天赚了26309
员工24号: 在第 2 天赚了15420
员工24号: 终于赚到 41729 元, 可以交差了...
员工25号: 老板交代了,要赚 33333 元,为了买车买房,加油吧....
员工13号: 在第 1 天赚了33266
员工13号: 终于赚到 33266 元, 可以交差了...
员工14号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工25号: 在第 1 天赚了19270
员工25号: 在第 2 天赚了15842
员工25号: 终于赚到 35112 元, 可以交差了...
员工9号: 嗯,不错,效率还可以,终于赚到 125156元,赶紧邀功去....
员工6号: 上级要我赚 100000, 有点小多,没事让我9个手下去完成吧,每人赚个 11112.0元应该没问题...
员工40号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工32号: 在第 1 天赚了8133
员工32号: 在第 2 天赚了3518
员工32号: 终于赚到 11651 元, 可以交差了...
员工33号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工27号: 在第 1 天赚了23200
员工14号: 在第 1 天赚了6366
员工27号: 在第 2 天赚了10406
员工27号: 终于赚到 33606 元, 可以交差了...
员工28号: 老板交代了,要赚 25000 元,为了买车买房,加油吧....
员工40号: 在第 1 天赚了28078
员工40号: 终于赚到 28078 元, 可以交差了...
员工41号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工41号: 在第 1 天赚了12996
员工41号: 终于赚到 12996 元, 可以交差了...
员工42号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工33号: 在第 1 天赚了29188
员工33号: 终于赚到 29188 元, 可以交差了...
员工34号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工14号: 在第 2 天赚了17712
员工14号: 终于赚到 24078 元, 可以交差了...
员工15号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工28号: 在第 1 天赚了18623
员工28号: 在第 2 天赚了8205
员工28号: 终于赚到 26828 元, 可以交差了...
员工29号: 老板交代了,要赚 25000 元,为了买车买房,加油吧....
员工34号: 在第 1 天赚了30779
员工34号: 终于赚到 30779 元, 可以交差了...
员工35号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工42号: 在第 1 天赚了26164
员工42号: 终于赚到 26164 元, 可以交差了...
员工43号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工43号: 在第 1 天赚了2995
员工29号: 在第 1 天赚了347
员工15号: 在第 1 天赚了33056
员工15号: 终于赚到 33056 元, 可以交差了...
员工16号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工35号: 在第 1 天赚了3639
员工29号: 在第 2 天赚了22909
员工43号: 在第 2 天赚了2289
员工16号: 在第 1 天赚了27836
员工16号: 终于赚到 27836 元, 可以交差了...
员工17号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工43号: 在第 3 天赚了694
员工17号: 在第 1 天赚了16361
员工17号: 终于赚到 16361 元, 可以交差了...
员工1号: 嗯,不错,效率还可以,终于赚到 189578元,赶紧邀功去....
员工2号: 上级要我赚 100000, 有点小多,没事让我2个手下去完成吧,每人赚个 50000.0元应该没问题...
员工49号: 老板交代了,要赚 50000 元,为了买车买房,加油吧....
员工49号: 在第 1 天赚了8599
员工43号: 在第 4 天赚了10008
员工43号: 终于赚到 15986 元, 可以交差了...
员工44号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工29号: 在第 3 天赚了31298
员工29号: 终于赚到 54554 元, 可以交差了...
员工8号: 嗯,不错,效率还可以,终于赚到 169421元,赶紧邀功去....
员工39号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工49号: 在第 2 天赚了8099
员工35号: 在第 2 天赚了164
员工49号: 在第 3 天赚了5518
员工49号: 在第 4 天赚了22441
员工44号: 在第 1 天赚了6091
员工39号: 在第 1 天赚了18813
员工39号: 终于赚到 18813 元, 可以交差了...
员工48号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工44号: 在第 2 天赚了22324
员工44号: 终于赚到 28415 元, 可以交差了...
员工45号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工49号: 在第 5 天赚了28438
员工49号: 终于赚到 73095 元, 可以交差了...
员工50号: 老板交代了,要赚 50000 元,为了买车买房,加油吧....
员工35号: 在第 3 天赚了31797
员工35号: 终于赚到 35600 元, 可以交差了...
员工36号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工50号: 在第 1 天赚了18071
员工45号: 在第 1 天赚了22528
员工45号: 终于赚到 22528 元, 可以交差了...
员工46号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工36号: 在第 1 天赚了26828
员工36号: 终于赚到 26828 元, 可以交差了...
员工37号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工50号: 在第 2 天赚了32422
员工50号: 终于赚到 50493 元, 可以交差了...
员工2号: 嗯,不错,效率还可以,终于赚到 123588元,赶紧邀功去....
员工3号: 上级要我赚 100000, 有点小多,没事让我9个手下去完成吧,每人赚个 11112.0元应该没问题...
员工51号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工46号: 在第 1 天赚了1537
员工46号: 在第 2 天赚了27529
员工46号: 终于赚到 29066 元, 可以交差了...
员工47号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工48号: 在第 1 天赚了24791
员工48号: 终于赚到 24791 元, 可以交差了...
员工38号: 老板交代了,要赚 10000 元,为了买车买房,加油吧....
员工37号: 在第 1 天赚了17587
员工37号: 终于赚到 17587 元, 可以交差了...
员工47号: 在第 1 天赚了23693
员工47号: 终于赚到 23693 元, 可以交差了...
员工6号: 嗯,不错,效率还可以,终于赚到 211717元,赶紧邀功去....
员工5号: 上级要我赚 100000, 有点小多,没事让我7个手下去完成吧,每人赚个 14286.0元应该没问题...
员工60号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工51号: 在第 1 天赚了27189
员工51号: 终于赚到 27189 元, 可以交差了...
员工52号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工38号: 在第 1 天赚了32285
员工38号: 终于赚到 32285 元, 可以交差了...
员工66号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工7号: 嗯,不错,效率还可以,终于赚到 228718元,赶紧邀功去....
员工65号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工65号: 在第 1 天赚了26122
员工65号: 终于赚到 26122 元, 可以交差了...
员工64号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工52号: 在第 1 天赚了19239
员工52号: 终于赚到 19239 元, 可以交差了...
员工53号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工60号: 在第 1 天赚了10433
员工66号: 在第 1 天赚了25993
员工66号: 终于赚到 25993 元, 可以交差了...
员工63号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工60号: 在第 2 天赚了19529
员工60号: 终于赚到 29962 元, 可以交差了...
员工61号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工64号: 在第 1 天赚了6894
员工53号: 在第 1 天赚了13114
员工53号: 终于赚到 13114 元, 可以交差了...
员工54号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工54号: 在第 1 天赚了8237
员工61号: 在第 1 天赚了15878
员工61号: 终于赚到 15878 元, 可以交差了...
员工62号: 老板交代了,要赚 14285 元,为了买车买房,加油吧....
员工63号: 在第 1 天赚了32108
员工63号: 终于赚到 32108 元, 可以交差了...
员工4号: 上级要我赚 100000, 有点小多,没事让我9个手下去完成吧,每人赚个 11112.0元应该没问题...
员工67号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工64号: 在第 2 天赚了30531
员工64号: 终于赚到 37425 元, 可以交差了...
员工75号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工54号: 在第 2 天赚了13562
员工54号: 终于赚到 21799 元, 可以交差了...
员工55号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工55号: 在第 1 天赚了17774
员工55号: 终于赚到 17774 元, 可以交差了...
员工56号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工67号: 在第 1 天赚了24463
员工67号: 终于赚到 24463 元, 可以交差了...
员工68号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工56号: 在第 1 天赚了1677
员工62号: 在第 1 天赚了14266
员工75号: 在第 1 天赚了26532
员工75号: 终于赚到 26532 元, 可以交差了...
员工74号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工68号: 在第 1 天赚了32639
员工68号: 终于赚到 32639 元, 可以交差了...
员工69号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工69号: 在第 1 天赚了9513
员工56号: 在第 2 天赚了9154
员工56号: 在第 3 天赚了289
员工56号: 终于赚到 11120 元, 可以交差了...
员工57号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工62号: 在第 2 天赚了17321
员工62号: 终于赚到 31587 元, 可以交差了...
员工5号: 嗯,不错,效率还可以,终于赚到 199075元,赶紧邀功去....
员工59号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工69号: 在第 2 天赚了17971
员工69号: 终于赚到 27484 元, 可以交差了...
员工70号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工74号: 在第 1 天赚了26270
员工74号: 终于赚到 26270 元, 可以交差了...
员工73号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工70号: 在第 1 天赚了21237
员工70号: 终于赚到 21237 元, 可以交差了...
员工71号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工59号: 在第 1 天赚了4411
员工57号: 在第 1 天赚了3546
员工57号: 在第 2 天赚了29330
员工57号: 终于赚到 32876 元, 可以交差了...
员工58号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工73号: 在第 1 天赚了10674
员工71号: 在第 1 天赚了8821
员工59号: 在第 2 天赚了11887
员工59号: 终于赚到 16298 元, 可以交差了...
员工72号: 老板交代了,要赚 11111 元,为了买车买房,加油吧....
员工58号: 在第 1 天赚了28241
员工58号: 终于赚到 28241 元, 可以交差了...
员工3号: 嗯,不错,效率还可以,终于赚到 187650元,赶紧邀功去....
员工72号: 在第 1 天赚了14371
员工72号: 终于赚到 14371 元, 可以交差了...
员工73号: 在第 2 天赚了14918
员工73号: 终于赚到 25592 元, 可以交差了...
员工71号: 在第 2 天赚了28814
员工71号: 终于赚到 37635 元, 可以交差了...
员工4号: 嗯,不错,效率还可以,终于赚到 236223元,赶紧邀功去....
员工0号: 嗯,不错,效率还可以,终于赚到 1845236元,赶紧邀功去....
1845236

看到没有,员工0号把任务一百万直接分给了10个手下去做,每个手下有继续往下分,最终在七十几号人的努力下,终于完成了目标--一百万.而且还超出八十多万,老板一开心,直接把八十多万分给这七十多个员工分红了.

后记

通过上面这个例子的学习,相信应该很多人都可以掌握ForkJoinPool这个类,它的核心就是要完成某一个目标任务,如果目标任务太大,那么就创建多个子任务.然后一直等待这些子任务完成.最终完成之前定下的目标任务.


打赏

如果觉得我的文章写的还过得去的话,有钱就捧个钱场,没钱给我捧个人场(帮我点赞或推荐一下)
微信打赏
支付宝打赏

转载于:https://www.cnblogs.com/kco1989/p/6760920.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

串口,com口,ttl,max232你应该知道的事

&#xff11;今天&#xff0c;说几个比较基础的知识&#xff0c;大家在开发过程中经常会遇到但是又不是特别注意的知识点。TTL电平&#xff1a;TTL是Transistor-Transistor Logic&#xff0c;即晶体管-晶体管逻辑的简称&#xff0c;它是计算机处理器控制的设备内部各部分之间通…

Caffe2 的基本数据结构(Basics of Caffe2 - Workspaces, Operators, and Nets)[4]

这篇文章主要介绍Caffe2的基本数据结构&#xff1a; WorkspacesOperatorsNets在开始之前最好先阅读以下Intro Turorial首先&#xff0c;导入caffe2。其中core和worksapce模块&#xff0c;这是必须的两个模块。如果你要使用Caffe2生成的protocol buffers&#xff0c;那么你也需要…

Linux 开发者最应该知道的命令汇总

&#xff11;最近发现一个好东西&#xff0c;在 github 上发现的&#xff0c;我觉得非常适合大家研究 linux&#xff0c;说白了就是一些命令而已&#xff0c;只不过是作者帮忙总结好了&#xff0c;比较适合大家开发和学习 linux 系统&#xff0c;so , 推荐给大家学习下。https:…

华为任职资格_华为采购总部专业任职资格标准|

目 录 序 言 概述 .........................第一部分 级别定义.....................第二部分 资格标准 ....................1、采购工程师&#xff08;生产采购&#xff09;任职资格标准........2、采购员&#xff08;生产采购&#xff09;任职资格标准............3、采购员…

C 语言内存分配

&#xff11;昨天有一个群里的同学问我&#xff0c;他问我的问题是 c 语言函数是存在哪里的&#xff1f;是如何执行的&#xff1f;我下意识的觉得这位同学应该是个初学者&#xff0c;所以今天就写下一些基础方面的内容&#xff0c;「C语言的内存布局」。程序代码可以看做是一个…

没有梦想,你跟咸鱼有什么分别?

&#xff11;标题起的有点夸张&#xff0c;其实这个就是一个招聘贴&#xff0c;之前从来没有用发头条文章来招聘&#xff0c;实在不好意思&#xff0c;这个招聘对我非常重要&#xff0c;这是一个非常好的朋友公司的招聘信息&#xff0c;也希望大家帮忙扩散一下&#xff0c;因为…

一个很Low的通讯录管理系统(但是能用)C/C++单链表实现

通讯录管理系统的设计 问题需求分析 在计算机还未普及之前通讯管理都是由联系人采用名片&#xff0c;通讯录往往采用的是笔录手工记帐的方式来操作的。现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。本通讯…

2017《面向对象程序设计》课程作业三

作业链接github链接 对于文件读写和多参数主函数学习过程中遇到的问题 这次文件读写改用了C的形式&#xff0c;然后总体还算顺利&#xff0c;借鉴了林燊的&#xff0c;因为他写的代码最容易看懂&#xff1b;还有就是借鉴了《C程序设计》&#xff0c;讲真&#xff0c;谭浩强的还…

华为不做黑寡妇,开源编译器,与友商共建安卓性能

&#xff11;今天我的一个老哥开了头条号&#xff0c;第一次发文章&#xff0c;我觉得不错&#xff0c;拿来用用&#xff0c;给大家看看华为技术总工的文采。这位总工潜伏在我的微信群里很少说话&#xff0c;大家一定要有这个想法&#xff0c;就是最低调的那个人&#xff0c;真…

点击链接如何直接跳转到相对应的聊天窗口

解决这个问题的步骤如下&#xff1a; <a target"_blank" href"http://wpa.qq.com/msgrd?v3&uin3237465337&siteqq&menuyes">一、登陆腾讯官方网站&#xff1a;http://wp.qq.com/ 二、登陆之后&#xff0c;点“设置”&#xff0c;按下图…

哈夫曼树编码与译码(完整C/C++实现代码)

哈夫曼编码的设计与应用 问题需求分析 用哈夫曼编码(Huffman Coding)&#xff0c;又称霍夫曼编码&#xff0c;是一种编码方式&#xff0c;哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法&#xff0c;该方法完全依据字符出现概率来构造异字头的平均长…

移动应用开发实例_物联网改变移动应用开发的4种方式

图片来源&#xff1a;pixabay.com来源&#xff1a;物联之家网(iothome.com)转载请注明来源&#xff01;物联网改变了移动应用程序的开发格局。那么&#xff0c;为物联网开发移动应用程序有何不同&#xff1f;物联网与移动应用程序开发齐头并进。物联网改变了人类与机器的互动方…

谁都能看懂的网络模型知识

&#xff11;.网络是我们做嵌入式 避无可避的知识点&#xff0c;但是网络的层次很多&#xff0c;很多时候我们根本理解不了其中的层次和作用&#xff0c;今天跟我们公司的 X 总聊到这个&#xff0c;给我普及了一些知识&#xff0c;我觉得非常有用&#xff0c;分享给大家。最近事…

常用排序算法以及算法性能测试(完整C/C++代码实现)

排序算法性能的比较 注: 由于只是测试算法性能, 所以不会对排序算法做深入讲解, 在随后的时间将会推出排序的详细讲解 问题需求分析 排序算法经过了很长时间的演变&#xff0c;产生了很多种不同的方法。每种算法主要针对不同的数列进行排序&#xff0c;这些排序算法具有各自…

我就随便BB一下

&#xff11;.如果我开始写文章的时候&#xff0c;停顿了几分钟&#xff0c;那结果应该很明显&#xff0c;这一定是一篇比较垃圾的文章&#xff0c;没什么东西值得看&#xff0c;所以我把之前的删除了&#xff0c;重新开头来写&#xff0c;我认为&#xff0c;一个好的开头一定是…

和我一起探索嵌入式

&#xff11;.本文为微信群管理员小磊投稿作品&#xff0c;作者计划编写一系列文章&#xff0c;该篇为第一篇&#xff0c;如果有做STM32的同学这将是一个非常好的系列教程&#xff0c;欢迎关注。我15年刚建立了一个BLE的QQ群&#xff0c;很有幸认识了小磊同学&#xff0c;一个非…

Java NIO_I/O基本概念_Java中的缓冲区(Buffer)_通道(Channel)_网络I/O

I/O基本概念 缓冲区基础 缓冲区是I/O的基础, 进程使用read(), write()将数据读出/写入从缓冲区中; 当缓冲区写满, 内核向磁盘发出指令, 将缓冲区中数据写入磁盘中(这一步不需要CPU), 当磁盘控制器将缓冲区装满, 内核将缓冲区数据拷贝到进程中指定的缓冲区; 操作如下图: 当中…

跟一个大佬前辈交流了一下

&#xff11;.最近&#xff0c;跟我们公司的测试总监聊天&#xff0c;我随便问了下他几个问题&#xff0c;他也给出了答案&#xff0c;在这里随便聊下&#xff0c;希望给大家的职业生涯中有一些借鉴的作用。也能给新入职场的同学一些方向和指引。2.先介绍下这个技术总监&#x…

LINQ简记(1):基本语法

关于LINQ&#xff08;语言集成查询&#xff09;是.NET 3.5和Visual Studio 2008以上版本中引入的一种有趣的全新概念&#xff0c;语言版本有VB和C#&#xff0c;由于C#与.NET平台结合最为紧密&#xff0c;也是MS当初首推的语言&#xff0c;因此&#xff0c;本系列文章的示例代码…

我认识的一位前辈~

&#xff11;.我最近认识了一个老前辈&#xff0c;关注了我的公众号加了我的好友认识的&#xff0c;我想介绍一下这位前辈&#xff0c;不是因为他有多成功&#xff0c;也不是因为他给了我很多钱&#xff0c;我觉得他是一个在平常不过的人了&#xff0c;因为太过于平凡的思考方式…