概念 多线程类似于同时执行多个不同程序, 优点 使用线程可以把占据长时间的程序中的任务放到后台去处理。 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程 ...
分类:
编程语言 时间:
2017-12-24 14:38:18
阅读次数:
238
1、倒计时器CountDownLatch CountDownLatch是一个多线程控制工具类。通常用来控制线程等待,它可以让一个线程一直等待知道计时结束才开始执行 构造函数: public CountDownLatch(int count) //count 计数个数 例如:在主线程中启动10个子线程 ...
分类:
编程语言 时间:
2017-12-19 15:10:50
阅读次数:
187
CountDownLatch允许一个或则多个线程等待其他线程完成操作。 假如我们有这样的需求:我们需要解析一个excel文件中的多个sheet,我们可以考虑使用多线程,每一个线程解析excel中的一个sheet表格,等所有的线程都完成解析之后,程序提示解析完成,输出解析结果。要实现这个需求,最简单的 ...
分类:
编程语言 时间:
2017-11-18 12:47:36
阅读次数:
190
死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不能正常运行。 简单的说就是:线程死锁时,第一个线程等待第二个线程释放资源,而同时第二个线程又在等待第一个线程释放资源。假设这种情况一直持续下去,这样就会发生死锁现象。 导致死锁的根源 ...
分类:
编程语言 时间:
2017-11-13 18:31:53
阅读次数:
151
悲观锁: 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 Java里面的同步原语synchronized关键字的实 ...
分类:
其他好文 时间:
2017-11-10 00:34:57
阅读次数:
194
一、线程同步 条件变量 什么是条件变量? 线程A等待某个条件成立,条件成立,线程A才继续向下执行。线程B的执行使条件成立,条件成立以后唤醒线程A,以继续执行。这个条件就是条件变量。 pthread_cond_t 类型 就是条件变量的类型 对类型的封装如下: #include //条件变量的静态初始化... ...
分类:
编程语言 时间:
2017-10-25 23:52:28
阅读次数:
278
## 事件对象分为两类:人工重置事件对象和自动重置事件对象。 对于人工重置事件对象,可以同时有多个线程等待到事件对象,成为可调度线程。 对于自动重置事件对象,等待该事件对象的多个线程只能有一个线程成为可调度线程。此外,如果事件对象为自动重置事件对象,当某个线程等待到事件对象后,系统将自动将事件对象设 ...
分类:
编程语言 时间:
2017-10-18 15:29:06
阅读次数:
180
为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一。本章将对MySQL中两种使用最为频繁的存储引擎MyISAM和Innodb各自的锁定机制进行较为详细的分析。 MySQL锁定机制简介 ...
分类:
数据库 时间:
2017-10-17 18:43:41
阅读次数:
217
CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作 当需要解析一个Excel里面有多个sheet数据时,可以使用多线程,每个线程解析一个sheet里的数据。主线程等待所有线程执行完sheet的解析操作。 join用于让当前执行线程等待join线程执行结束 ...
分类:
编程语言 时间:
2017-10-16 13:35:00
阅读次数:
181
lock 的目的很明确:就是不想让别人使用这段代码,体现在多线程情况下,只允许当前线程执行该代码区域,其他线程等待直到该线程执行结束;这样可以多线程避免同时使用某一方法造成数据混乱。 一般定义如下: private static readonly object obj = new object(); ...