自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA线程通信 生产者/消费者用例

/** * 线程通信的应用:经典例题:生产者/消费者问题 * * 生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品, * 店员一次只能持有固定数量的产品(比如:20),如果生产者试图生产更多的产品,店员 * 会叫生产者停一下,如果店中有空位放产品了再通知生产者继续生产;如果店中没有产品 * 了,店员会告诉消费者等一下,如果店中有产品了再通知消费者来取走产品。 * * 分析: * 1. 是否是多线程问题?是,生产者线程,消费者线程 *

2020-05-22 17:38:33 192

转载 JAVA线程通信

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

2020-05-22 17:29:29 88

转载 JAVA线程Lock锁

import java.util.concurrent.locks.ReentrantLock;/** * 解决线程安全问题的方式三:Lock锁 --- JDK5.0新增 * * 1. 面试题:synchronized 与 Lock的异同? * 相同:二者都可以解决线程安全问题 * 不同:synchronized机制在执行完相应的同步代码以后,自动的释放同步监视器 * Lock需要手动的启动同步(lock()),同时结束同步也需要手动的实现(unlock()) *

2020-05-22 16:10:14 108

原创 JAVA线程死锁

/** * 演示线程的死锁问题 * * 1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃, * 都在等待对方放弃自己需要的同步资源,就形成了线程的死锁 * * 2.说明: * 1)出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续 * 2)我们使用同步时,要避免出现死锁。 * * @author shkstart * @create 2019-02-15 下午 3:20 */public class ThreadTest { publi

2020-05-22 15:22:23 131

原创 JAVA线程安全单例设计模式之懒汉式

class Bank{ private Bank(){} private static Bank instance = null; public static Bank getInstance(){ //方式一:效率稍差// synchronized (Bank.class) {// if(instance == null){// instance = new Bank();//

2020-05-22 15:05:06 123

原创 JAVA线程同步方法

synchronized放在方法声明中,表示整个方法为同步方法。例如:public synchronized void show (String name){….}案例 Runnable:class Window3 implements Runnable { private int ticket = 100; @Override public void run() { while (true) { show();

2020-05-22 14:45:22 98

原创 JAVA线程同步代码块

语法:synchronized (同步监视器){ // 需要被同步的代码;}说明:操作共享数据的代码,即为需要被同步的代码共享数据,多个线程操作的变量同步监视器,俗称锁,任何一个对象都可以充当锁。要求, 各个线程使用同一个锁对象案例 Runnable:class Window1 implements Runnable{ private int ticket = 100; @Override public void run() { while(

2020-05-22 14:02:57 142

原创 JAVA线程的生命周期

标题JDK中用Thread.State类定义了线程的五种状态新建: 当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已具备了运行的条件,只是没分配到CPU资源运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态, run()方法定义了线程的操作和功能阻塞:在某种特殊情况下,被人为挂起或执行输入输出操作时,让出 CPU 并临时中止自己的执行,进入阻塞状态死亡:线程完成了它的全

2020-05-22 11:10:25 188

原创 JAVA线程的优先级

线程的优先级等级MAX_PRIORITY:10MIN _PRIORITY:1NORM_PRIORITY:5涉及的方法getPriority() :返回线程优先值setPriority(int newPriority) :改变线程的优先级说明线程创建时继承父线程的优先级低优先级只是获得调度的概率低,并非一定是在高优先级线程之后才被调用参考1 尚硅谷...

2020-05-22 10:58:51 119

原创 JAVA线程的方法

void start()启动线程,并执行对象的run()方法run()线程在被调度时执行的操作String getName()返回线程的名称void setName(String name)设置该线程名称static Thread currentThread()返回当前线程。在Thread子类中就是this,通常用于主线程和Runnable实现类static void yield()线程让步暂停当前正在执行的线程,把执行机会让给优先级相同或更高的线程若队列中没有同优先级的线程,忽

2020-05-22 10:40:43 77

原创 JAVA线程的创建

public class ThreadTest { public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); }}/** * 多线程的创建,方式一:继承Thread类 * 1创建一个继承Tread的子类 * 2重写run() * 3创建实例对象 * 4通过此对象调用start() * @author kanglin */class MyThre

2020-05-15 21:43:19 123

原创 JAVA运算符

目录1 算术运算符2 赋值运算符3 比较运算符(关系运算符)4 逻辑运算符5 位运算符6 三元运算符1 算术运算符算术运算符的注意问题如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。“+”除字符串相加功能外,还能把非字符串转换成字符串.2 赋值运算符符号:=1当“=”两侧数据类型不一致时,可以使用自动类型转换或使用

2020-05-11 16:15:16 114

原创 JAVA数据类型

1 整数类型:byte、short、int、long类 型占用存储空间表数范围byte1字节=8bit位-128 ~ 127short2字节-215 ~ 215 - 1int4字节-231 ~ 231 - 1 (约21亿)long8字节-263 ~ 263 - 1java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’2 浮点类型:float、double类 型占用存储空间表数范围单精度

2020-05-11 14:32:54 94

原创 阿里云OSS对象存储JAVA服务端使用

1. 开通 OSS 服务官方文档2.创建存储空间官方文档3.安装SDK官方文档4.上传文件官方文档5.获取文件下载地址官方文档6.删除文件官方文档

2020-05-07 17:56:24 528

空空如也

空空如也

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

TA关注的人

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