黑马程序员-学习日记1(多线程的初步认识)

class Mlpc extends Thread //第一步、定义类继承Thread类
{
    private int ticket = 20;

    public void run() //第二步、覆写run方法,把需要被现场运行的代码都写在其中
    {
        while(true)
        {
            if(ticket>0)
            {
                System.out.println(Thread.currentThread()+"  "+ticket);
            }
        }
    }
}
 class mlpcDemo
{
    public static void main(String[] args)
    {
        Mlpc m = new Mlpc();
        Thread th0 = new Thread(m);
        Thread th1 = new Thread(m);
        Thread th2 = new Thread(m);
        Thread th3 = new Thread(m);

        th0.start();
        th1.start();
        th2.start();
        th3.start();
    }
}

时间: 2024-07-30 10:15:52

黑马程序员-学习日记1(多线程的初步认识)的相关文章

黑马程序员-学习日记(多线程的初步认识)

 ------Java EE培训.Android培训.iOS培训.期待与您交流! ------- 进程:正在执行的应用程序.一个应用程序运行时内存分配的空间.线程:进程中一个程序执行的控制单元,一条执行路径.负责程序的执行顺序.多线程:在java虚拟机启动的时候会有一个java.exe的执行程序,即一个进程.该进程中至少有一个线程负责java程序的运行.而且这个线程运行的代码存在于main方法中. class Demo extends Thread { public void run() { f

黑马程序员-学习日记(多线程)

进程:正在执行的应用程序.一个应用程序运行时内存分配的空间.线程:进程中一个程序执行的控制单元,一条执行路径.负责程序的执行顺序. 多线程存在的意义: 程序运行中至少有两个线程在运行,一个是主函数的主线程,另一个是垃圾回收的线程. 线程创建方式一: 继承Thread类.要覆盖其run方法,调用线程的start方法. 作用:1.启动线程 2.运行run方法.目的是将自定义的代码存储在run方法中,让线程运行 cpu每次只执行一个程序,只是在快速的不同线程间切换,表现了多线程的随机性 class M

黑马程序员-学习日记(多线程安全问题和死锁认识)

------Java培训.Android培训.iOS培训.期待与您交流! ------- 安全问题产生的原因: 当多条代码语句在操作同一个共享数据时,一个线程对多条语句只执行了一部分,还没有执行完, 另一个线程参与进来执行.导致共享数据的错误. class Mlpc implements Runnable { private int ticket = 50; public void run() { while(true) { if(ticket>0) { try { Thread.sleep(2

黑马程序员-学习日记(多线程间的通信)

 ------Java EE培训.Android培训.iOS培训.期待与您交流! ------- 示例: //将资源封装成对象 class Resour { String name; String gender; } //将线程执行的任务封装成对象 class Input implements Runnable { private Resour r; Input(Resour r) { this.r = r; } public void run() { int x =0; while(true)

黑马程序员-学习日记(多线程的安全)

安全产生的原因: 当多条语句在操作同一个共享数据时,一个线程对多条语句只执行了一部分,还没有执行完, 另一个线程参与进来执行.导致共享数据的错误. class Mlpc implements Runnable { private int ticket = 50; public void run() { while(true) { if(ticket>0) { try { Thread.sleep(20); //让线程进入冻结状态 } catch (Exception e) { } System.

黑马程序员-学习日记(面向对象)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.面向对象  理解面向对象  面向对象是相对面向过程而言,面向对象和面向过程都是一种思想. 面向过程: 强调的是功能行为.代表语言:C语言. 例子:把大象装进冰箱 1.打开冰箱门.2.放入大象.3.关上冰箱门."打开"."存储"."关上"都是功能行为,在代码中的直观体现就是函数或者方法,这就是一种面向过程的以功能行为为主体的思想体现. 面向对

黑马程序员-学习日记(接口和多态)

1.继承 1-1 继承的概念 1-1-1 继承的概述 通过 extends 关键字让类与类之间产生继承关系. 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类或者超类. 注意: ①子类可以直接访问父类中的非私有的属性和行为. ②子类无法继承父类中私有的内容.③父类怎么来的?共性不断向上抽取而来的. ExtendDemo.java class Person{ String name; int

黑马程序员_日记19_Java多线程(九)

--- android培训.java培训.期待与您交流! ---- 1 停止线程 原理:让run方法结束.而run方法中通常定义循环结构,所以就是控制住循环结构就可以了. stop方法已经过时了. 如何控制循环结构?? 1 定义结束标记 2 当线程处于了冻结状态,没有执行标记,程序一样无法结束. 这时可以循环,正常退出冻结状态,或者强制结束冻结状态. 强制结束冻结状态:interrupt();目的是线程强制从冻结状态恢复到运行状态. 但是会发生InterruptedException异常. //

黑马程序员-学习日记(单例设计模式的两种类型)

单例设计模式:解决一个类在内存中只有一个对象 多个程序使用统一配置信息对象时,需要保证该对对象的唯一性. 保证对象唯一性的实现步骤: 1.将构造函数私有化:为了避免其他程序过多建立该对象,禁止其他程序调用该对象. 2.在类中创建一个本类对象:为了让其他程序可以访问该类对象 3.提供一个方法可以获取到该对象的方法:方便其他程序访问自定义的本类对象.(类方法的访问方式只有两种,建立对象或定义为静态方法)