自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 java学习笔记 多线程练习题总结

一、判断题1. C和Java都是多线程的。 ( )答案:错误 知识点:C 是单线程语言。2.如果线程死亡,它便不能运行。 ( )答案:正确 知识点:线程死亡就意味着它不能运行。3.在 Java 中,高优先级的可运行线程会抢占低优先级线程。( )答案:正确 知识点:线程优先级的使用。4.程序开发者必须创建一个线程去管理内存的分配。( )答案:错误 知识点:Java 提供了一个系统线程来管理内存的分配。...

2020-10-22 11:36:53 1666

原创 java学习笔记 jdk5新增的创建线程方式 - Callable接口和线程池

* 创建线程的方式三:实现Callable接口。 --- JDK 5.0新增*** 如何理解实现Callable接口的方式创建多线程比实现Runnable接口创建多线程方式强大?* 1. call()可以有返回值的* 2. call()可以抛出异常,被外面的操作捕获,获取异常的信息* 3. Callable是支持泛型的需要借助FutureTask类,比如获取返回结果。Future接口可以对具体Runnable、Callable任务的执行结果进行取消、查询是 否完成、获取结果等。 .

2020-10-22 09:47:19 71

原创 java学习笔记 线程通信

* 线程通信的例子:使用两个线程打印 1-100。线程1, 线程2 交替打印** 涉及到的三个方法:* wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。* notify():一旦执行此方法,就会唤醒被wait的一个线程。如果有多个线程被wait,就唤醒优先级高的那个。* notifyAll():一旦执行此方法,就会唤醒所有被wait的线程。示例代码:class Number implements Runnable{ private int number.

2020-10-22 09:32:28 90

原创 java学习笔记 死锁与锁Lock

死锁的演示代码:class A { public synchronized void foo(B b) { //同步监视器:A类的对象:a System.out.println("当前线程名: " + Thread.currentThread().getName() + " 进入了A实例的foo方法"); // ①// try {// Thread.sleep(200);// } catch (InterruptedException ex) {// ex.print

2020-10-21 11:26:49 67

原创 java学习笔记 多线程 - 使用同步机制将单例模式中的懒汉式改写为线程安全的

问题描述:使用同步机制将单例模式中的懒汉式改写为线程安全的。class Bank{ private Bank(){} private static Bank instance = null; public static Bank getInstance(){ //方式一:效率稍差// synchronized (Bank.class) {// if(instance == null){////

2020-10-21 11:14:54 119

原创 java学习笔记 窗口售票问题 - 线程同步机制

问题描述:创建3个窗口卖票,票数为100张。使用继承Thread类的方式实现,存在线程安全问题,待解决:class Window extends Thread{ private static int ticket = 100; @Override public void run() { while(true){ if(ticket > 0){ System.out.println.

2020-10-21 11:09:35 325 2

转载 java学习笔记 2020/10/21 Thread类中的方法

Thread中的常用方法: 1. start():启动当前线程;调用当前线程的run() 2. run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中 3. currentThread():静态方法,返回执行当前代码的线程 4. getName():获取当前线程的名字 5. setName():设置当前线程的名字 6. yield():释放当前cpu的执行权 7. join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全.

2020-10-21 10:30:09 52

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除