随笔分类 -  emanual_java基础_多线程

摘要:sleep:Thread类中定义的方法,表示线程休眠,会自动唤醒;wait:Object中定义的方法,需要手工调用notify()或者notifyAll()方法。sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用s 阅读全文
posted @ 2018-09-30 23:50 尐鱼儿 阅读(1445) 评论(0) 推荐(0) 编辑
摘要:主要相同点:Lock能完成synchronized所实现的所有功能 。 主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。Lock还有更强大的功能,例如,它的try 阅读全文
posted @ 2018-09-30 23:38 尐鱼儿 阅读(504) 评论(0) 推荐(0) 编辑
摘要:分几种情况: 1.其他方法前是否加了synchronized关键字,如果没加,则能。 2.如果这个方法内部调用了wait,则可以进入其他synchronized方法。 3.如果其他个方法都加了synchronized关键字,并且内部没有调用wait,则不能。 4.如果其他方法是static,它用的同 阅读全文
posted @ 2018-09-30 23:33 尐鱼儿 阅读(131) 评论(0) 推荐(0) 编辑
摘要:多线程并发访问同一个对象(临界资源),如果不对线程进行同步控制,破坏了原子操作(不可再分的操作),则会造成临界资源(两个线程同时访问的资源)的数据不一致。 每一个对象都有一个互斥的锁标记和一个锁池。当线程拥有这个对象的锁标记时才能访问这个资源,没有锁标记便进入锁池,保证在同步代码块中只有一个线程,解 阅读全文
posted @ 2018-09-30 23:30 尐鱼儿 阅读(147) 评论(0) 推荐(0) 编辑
摘要:线程的生命周期: 1)初始状态:此时线程只是处于JVM进程中,只是创建了一个线程对象,并没有真正开始运行。 2)可动行状态:调用线程对象的start()方法,此时线程才真正的被创建,进入可运行状态,等待CPU的调度。“万事俱备,只欠CPU”。 3)运行状态:正在运行的线程,此时它拥有CPU的执行权。 阅读全文
posted @ 2018-09-30 23:29 尐鱼儿 阅读(140) 评论(0) 推荐(0) 编辑
摘要:Thread中的一些方法: currentThread() 返回对当前正在执行的线程对象的引用(实现接口方式时使用)。 sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。 本线程不会去抢,除非sleep结束。 多个线程之间都会去抢执行权限,不会考虑优先级。 阅读全文
posted @ 2018-09-30 23:27 尐鱼儿 阅读(116) 评论(0) 推荐(0) 编辑
摘要:进程:同一个操作系统中执行的一个子程序,包含了三部分虚拟CPU、代码、数据。 多进程:同一个操作系统中执行的多个并行的子程序。可以提高cpu的使用率。 线程:在同一个进程当中执行的子程序流。 多线程:同一个进程当中并发执行的多个子程序流。可以提高cpu的使用率。 进程与线程的区别: 进程有独立的进程 阅读全文
posted @ 2018-09-30 23:26 尐鱼儿 阅读(96) 评论(0) 推荐(0) 编辑
摘要:写一个类,继承Thread类,覆盖Thread类中继承来的run()方法,这样就写好了自定义的线程类。 继承java.lang.Thread类: 启动线程: 写一个类,实现Runable接口,实现其中的run()方法。这种方法写好的类的对象需要作为线程类创建对象时构造方法的参数。 实现java.la 阅读全文
posted @ 2018-09-30 23:26 尐鱼儿 阅读(112) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示