函数式的编程思想 在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法一一强调做什么,而不是以什么形式做。 冗余的Runnable代码 传统写法 当需要启动一个线程去完成任 ...
分类:
编程语言 时间:
2020-01-27 22:02:45
阅读次数:
109
1.Thread实现: import java.util.Date; import java.text.SimpleDateFormat; public class MyThread extends Thread{ @Override public void run(){ SimpleDateFor ...
分类:
编程语言 时间:
2020-01-23 22:32:19
阅读次数:
94
1 线程与进程 进程:简单来说一个运行着的应用程序就是一个进程,一个进程中至少有一条线程,进程是资源分配的最小单位 线程:是进程的一个执行单元,线程是 CPU 调度的最小单位。 线程5 种状态: 新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Dead ...
分类:
编程语言 时间:
2020-01-23 12:36:09
阅读次数:
88
继承Thread类 步骤: 1,编写线程类,继承Thread 2,重写public void run()方法,他的方法体就是这个线程的线程体(这个线程要完成的任务) 3,常见线程类对象 4,启动:必须调用start() 实现Runnable接口 1,步骤 1,编写线程类,实现Runnable接口 2 ...
分类:
编程语言 时间:
2020-01-22 23:32:11
阅读次数:
81
一、线程管理 1、创建线程 Thread、Runnable、Callable、ThreadPool 2、状态切换 3、守护线程 4、异常捕获 5、局部变量 6、线程组 7、工厂类 二、同步 1、synchronized 2、ReentrantLock 三、同步辅助类 1、Semaphore信号量 2 ...
分类:
编程语言 时间:
2020-01-21 18:27:13
阅读次数:
102
1. 线程池 1.1. 为什么使用线程池 多线程的缺点: 处理任务的线程创建和销毁都非常耗时并消耗资源。 多线程之间的切换也会非常耗时并消耗资源。 解决方法:采用线程池 使用时线程已存在,消除了线程创建的时耗 通过设置线程数目,防止资源不足 1.1. ThreadPoolExecutor的全参构造函 ...
分类:
编程语言 时间:
2020-01-21 17:51:48
阅读次数:
62
问题的引出 在java语言中,我们常常会用到多线程相关的操作,但是多线程操作中可能会出现一些问题。 现在给定一个抢票的多线程代码 class MyThread implements Runnable{ int a = 10;//票数 @Override public void run() { whi ...
分类:
编程语言 时间:
2020-01-20 23:01:34
阅读次数:
78
什么是线程安全? 多个线程同时访问了相同的资源,并对该资源进行写的操作,使得资源发生改变时就会产生线程安全问题。只有资源没有发生变化,多个资源同时进行读取操作的时候线程才是安全的。 例: class SaleTicket implements Runnable( // 初始化当前剩余票数 priva ...
分类:
编程语言 时间:
2020-01-19 23:57:20
阅读次数:
140
状态类型 在指定的时间点, 一个线程有且只有一种状态。 这些状态是 JVM 的状态, 他们并没有反映操作系统的状态。 定义 Thread 的状态是定义在 Thread 内部的枚举类型。 public enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIME ...
分类:
编程语言 时间:
2020-01-19 18:57:00
阅读次数:
88
概述 CyclicBarrier是一个同步辅助类,它允许一组线程相互等待,直到达到某个公共屏障点。并且在释放等待线程之后,CyclicBarrier是可以重复使用的。 简单使用 下面这段代码利用了CyclicBarrier来使得线程创建后相互等待,直到所有的线程都准备好,以此来使多个线程同时执行。 ...
分类:
其他好文 时间:
2020-01-17 18:57:05
阅读次数:
75