摘要: 链表是最简单的动态数据结构,数据存储在节点(Node)中,其节点的数据结构如下: 我们可以把链表理解成为一个火车,每个链表,其实就是一节车厢,数据存储在车厢中中,而每个火车节都有一个指针,连接着下一个火车节。 链表有一个优点: 真正的动态数据结构,无需关系创建的空间是否过大,不需要像数据一样担心容量 阅读全文
posted @ 2018-08-26 14:30 测试5454 阅读(6782) 评论(0) 推荐(1) 编辑
摘要: 同步方法默认使用this或者当前类做为锁。 同步代码块可以选择以什么来加锁,比同步方法更精确,我们可以选择只有会在同步发生同步问题的代码加锁,而并不是整个方法。 同步方法使用synchronized修饰,而同步代码块使用synchronized(this){}修饰。 阅读全文
posted @ 2018-08-25 22:49 测试5454 阅读(1876) 评论(0) 推荐(0) 编辑
摘要: 线程分为两种,一种是用户线程,另外一种是守护线程。 守护线程最经典的实现就是GC(垃圾回收机制) 守护线程是一种特殊的线程,当进程中不存在非守护线程时,守护线程也就自动销毁的。 用个比较通俗易懂的比喻来解释一下吧: 任何一个守护线程都是JVM中所有非守护线程的“保姆”,只要JVM中还有非守护线程在运 阅读全文
posted @ 2018-08-25 16:47 测试5454 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 在操作系统中,线程可以划分优先级的,优先级较高的线程得到的CPU资源较多。(也就是说比那些优先级比自己低的线程执行速度快) 设置线程的优先级使用setPriority()方法。 在java中,线程的优先级可以分为1-10个等级,小于1或者大于10都会抛出java.lang.IllegalArgume 阅读全文
posted @ 2018-08-25 16:03 测试5454 阅读(911) 评论(0) 推荐(0) 编辑
摘要: mysql查询当天的数据 贴代码: 阅读全文
posted @ 2018-08-24 19:54 测试5454 阅读(238) 评论(0) 推荐(0) 编辑
摘要: java线程停止可以说是非常有讲究的,看起来非常简单,但是也要做好一些防范措施,一般停止一个线程可以使用Thread.stop();来实现,但是最好不要用,因为他是不安全的。 大多数停止线程使用Thread.interrupt()方法,但是这个方法不会终止一个线程,还需要加入一个判断才可以完成线程的 阅读全文
posted @ 2018-08-24 13:17 测试5454 阅读(2292) 评论(1) 推荐(0) 编辑
摘要: 介绍一些多线程中的常用方法: 暂停继续: suspend()和 resume()方法: 线程的暂停和恢复,使用 suspend()方法使线程进入阻塞状态,不可以自动恢复,可使用resume()方法将线程唤醒。 yield()方法: yield()方法的作用是放弃当前CPU资源,将他让给其他的任务去使 阅读全文
posted @ 2018-08-22 17:41 测试5454 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 多线程中一定会遇到线程安全的问题,也就是在同一时间N条线程操作了同一变量,这个变量也叫做共享变量。 举例:(错误的示范) 设计一个投票系统,多个人可以对同一个的票数进行投票,下面看具体代码: 代码: 看代码貌似没什么问题,但是见到打印的语句就会发现问题了: 明明小红投完票之后,小明的票应该是1,但是 阅读全文
posted @ 2018-08-22 16:59 测试5454 阅读(192) 评论(0) 推荐(0) 编辑
摘要: java实现多线程有两种方式,一种是继承Thread类,另外一种就是实现Runnable接口。 两种实现方法的优缺点: 使用Thread类实现多线程局限性就是不支持多继承,因为java是不支持类多继承的,除此之外两种多线程没有任何区别。 (如果你想创建线程的类已经有一个父类了,那么你只能实现Runn 阅读全文
posted @ 2018-08-21 19:02 测试5454 阅读(2050) 评论(0) 推荐(0) 编辑
摘要: 进程: 进程可以理解为一个正在运行的程序,每一个运行的程序都是一个进程。 线程: 线程可以为在进程中运行的子任务,一个进程可以有N个线程(N <= 1)。 多线程的优点: 举个例子,一个人两天可以完成的刚工作(一条线程工作两天),那么两个人一天就可以完成了(两条线程工作一条)。很明显,工作效率翻倍, 阅读全文
posted @ 2018-08-21 14:10 测试5454 阅读(174) 评论(0) 推荐(0) 编辑