黑马程序员日记-16
来源:互联网 发布:李鸿章 袁世凯 知乎 编辑:程序博客网 时间:2024/05/17 03:34
------- android培训、java培训、期待与您交流! ----------
多线程
(1)多线程
A:进程:程序的一次执行过程。
B:线程:线程是进行的执行单元。
C:任何一个应用程序,都至少有一条执行路径。
D:单线程程序:应用程序只有一条执行路径。
E:多线程程序:应用程序有多条执行路径。
(2)jvm启动的时候是多线程的。
假如jvm的启动时单线程的,就可能存在着内存溢出的隐患。所以,jvm启动是多线程的。至少有两个,主线程和垃圾回收线程。
(3)java中实现多线程的方式
A:继承Thread类
步骤:
**自定义类继承Thread类
**重写run方法
**创建自定义类的对象
**调用start方法
代码体现:
public class ThreadDemo extends Thread { public void run() { //code } } public class ThreadDemoTest { public static void main(String[] args) { ThreadDemo td1 = new ThreadDemo(); ThreadDemo td2 = new ThreadDemo(); td1.start(); td2.start(); } }
B:实现Runnable接口
步骤:
**创建自定义类实现Runnable接口
**在自定义类中实现Runnable接口中的run方法
**创建自定义类对象,并把该对象作为参数传递给
Thread类的构造方法来创建Thread的对象
**调用start方法
代码体现:
public class RunnableDemo implements Runnable { public void run() { //code } } public class RunnableDemoTest { public static void main(String[] args) { RunnableDemo rd = new RunnableDemo(); Thread t1 = new Thread(rd); Thread t2 = new Thread(rd); t1.start(); t2.start(); } }
(4)Thread类中的常用的几个小方法
A:String getName():获取线程的名称
B:static Thread currentThread():获取当前线程的对象的引用
C:void setName(String name):通过set方法设置线程对象的名称。
D:Thread(String name):通过构造方法设置线程对象的名称。
(5)线程的随机性原理
CPU的特点:在同一时刻,只能有一个线程执行。多个线程其实是在抢占CPU的资源。而CPU在这些线程中做着高速的切换
2:线程同步
(1)产生线程安全的原因:1.多个线程访问出现延迟。2.线程访问的随机性
(2)如果判断一个线程程序有没有安全问题呢?
A:多个线程操作共享数据
B:这个操作是分多条语句执行的。
(3)解决线程安全问题的方式
A:同步代码块
B:格式:
synchronized(对象)
{
//需要被同步的代码
}
- 黑马程序员日记-16
- 黑马程序员_学习日记16_JavaScript
- 黑马程序员 枚举日记
- 黑马程序员日记01
- 黑马程序员--学习日记
- 黑马程序员-开篇日记
- 黑马程序员-日记day1
- 黑马程序员日记-1
- 黑马程序员日记-2
- 黑马程序员日记-3
- 黑马程序员日记-4
- 黑马程序员日记-5
- 黑马程序员日记-6
- 黑马程序员日记-7
- 黑马程序员日记-8
- 黑马程序员日记-9
- 黑马程序员日记-10
- 黑马程序员日记-11
- HTML总结
- NSString的详细用法(函数说明)
- 位运算及其应用
- 树莓派hwclock命令参数及用法详解--linux显示/设置硬件时钟命令
- 写css 的时候可以自动刷新界面的js
- 黑马程序员日记-16
- Hadoop自定义Writable实现二次排序
- Basic Calculator II | LeetCode 48ms C++ Solution
- 《Effective Java》笔记
- 转帖:PLSQL怎么创建oracle数据库用户
- Java super关键字总结
- 使用Andbase框架实现屏幕适配
- 用“计算机”,访问FTP
- JAVA环境变量设置