线程
魏什么h
这个作者很懒,什么都没留下…
展开
-
synchronized优化
synchronized优化在JDK1.5中,synchronized还性能较低的,因为只是一个重量级操作,synchronized是一个重量级锁,就是多个线程只有一个线程能够获取到锁,未获取到锁的线程将会被阻塞,等到持有锁的线程释放锁后,这些线程又被唤醒,这些操作非常耗费CPU的资源IDK1.6对synchronized做了优化CAS:乐观锁乐观锁:假设所有线程访问共享资源时不会出现冲...原创 2019-08-13 14:46:25 · 234 阅读 · 0 评论 -
synchronized底层实现
synchronized底层实现synchronized时Java的内建锁,可以保证在多线程的情况下,每次有且仅有一个线程访问共享资源同步的原理:monitor机制同步代码块class TestMonitor implements Runnable{ @Override public void run() { synchronized (this){ ...原创 2019-08-12 17:27:28 · 183 阅读 · 0 评论 -
线程的同步
同步:线程同步问题:多个线程对象访问同一个数据大小,对数据造成破坏问题线程的并行执行造成的问题:卖票程序为例class TSyn implements Runnable{ private int ticket = 10; @Override public void run() { while (this.ticket > 0){ ...原创 2019-08-12 15:13:43 · 109 阅读 · 0 评论 -
守护线程
Java中线程的分类:用户线程守护线程区分:isDaemon() 返回false为用线程,true为守护线程public final boolean isDaemon() { return daemon; }private boolean daemon = false;进入源码发现变量daemon的默认值为false,这说明我们自己创建...原创 2019-08-12 11:08:31 · 137 阅读 · 0 评论 -
线程状态及常用方法
线程有五种状态:创建、就绪、运行、阻塞、结束创建:当使用new创建新的线程时,处于创建状态就绪:调用start方法后,线程并不是立即处于运行状态,而是出于就绪态运行:当线程被分配CPU后,运行run方法后才处于运行状态阻塞:线程因为某些原因让出CPU使用权,直到重新进入运行态(如调用sleep方法)死亡:线程处于死亡状态run方法的正常退出或异常退出,线程死亡异常导致线程死亡...原创 2019-08-12 10:26:02 · 208 阅读 · 1 评论 -
线程的创建
进程与线程:进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,线程依托于进程存在。比如在Windows系统中,一个运行的exe就是一个进程线程指的是进程中的一个执行流程,,一个进程中可以运行很多线程,进程中的多个线程间共享进程的内存比如:打开qq,在qq中可以聊天,可以刷动态,可以留言,每一个操作都是一个进程线程的创建:继承Thread类class MyThre...原创 2019-08-11 11:07:05 · 96 阅读 · 0 评论 -
使用wait和notify交替打印数字
练习:实现两个线程交替打印1~100思路:可以利用wait和notify方法实现,一个线程打印,打印完就释放对象锁,唤醒另一个线程打印,打印完释放对象锁,唤醒另一个线程打印,交替执行class MyPrint implements Runnable{ int i = 1; @Override public void run() { while (tru...原创 2019-08-13 17:22:09 · 1626 阅读 · 0 评论 -
wait和notify
wait(): 死等,直到被唤醒或中断概念:使得当前线程立刻停止运行,处于等待状态。并将当前线程置入锁对象的等待队列中,直到被通知(notify())或被中断为止。使用条件:只能在同步方法或同步代码块中使用,必须是内建锁。wait()调用后立刻释放对象锁。public final native void wait(long timeout)throws InterruptedEx...原创 2019-08-13 17:10:24 · 126 阅读 · 0 评论 -
线程池
Java中的线程池试运行场景最多的并发框架,几乎左右需要异步或者并发执行任务的程序都可以使用线程池。合理使用线程池能够带来三个好处:降低资源消耗,通过重复利用已经创建好的线程降低线程创建和销毁带来的消耗提高响应速度,当任务到达时,任务可以不需要等到线程创建就能立即运行提高线程的客观理性,线程时稀缺资源,如果无限创建线程,不仅会消耗资源,还会降低系统的稳定性,使用线程池可以进行统一分配和调...原创 2019-08-31 20:50:21 · 226 阅读 · 0 评论