------- android培训、java培训、期待与您交流! ----------
进程:是每一个正在执行中的程序
每一个进程执行都有一个执行书序。该顺序是一个执行路径,或者叫做一个控制单元
线程:就是进程中的一个独立的控制单元
线程在控制着进程的执行
java VM 启动的时候会有一个进程 java.exe
该进程中至少又一个线程负责java程序的执行
而且这个线程运行的代码存在于main方法中
该线程称之为主线程
1
通过对api的查找,java已经提供了对线程这类事物的描述,就是Thread类
复写Thread类中的run方法
创建线程的第一种方式,就是继承Thread类
发现运行结果每次都不同
因为多个线程都获取cpu的执行权,cpu执行到谁,谁就运行
明确一点,在某一个时刻,只能有一个程序运行
cpu在做着快速的切换,可以看上去是同时运行的效果
我们可以形象的把多线程的运行形容为在互相抢夺CPU的执行权
这就是多线程的一个特性:随机性,谁抢到谁执行,至于执行多长时间,cpu说的算class Demo extends Thread{
[code="java"] public void run(){
for (int x=0; xThread-编号 编号从0开始
通过this.getName()获取
currentThread()返回正在执行的当前线程对象
静态方法
Thread.currentThread().getName()也可以获取当前对象的名称
设置线程名称:setName或者构造函数
看当前是哪个线程正在运行可以获取名称进行判断
Runnable就一个方法
void run()
创建线程的第二种方式:实现Runnable接口
步骤:
定义类实现Runnable接口
覆盖Runnable接口中的run方法
将线程要运行的代码存放在该run方法中
通过Thread类建立线程对象
将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
因为,自定义的run方法所属的对象是Runnable接口的子类对象
所以要让线程去制定制定对象的run方法,就必须明确该run方法所属对象
PS:
接口的好处 提供了方便的功能扩展
多线程之间的通信:
多个线程在操作同一个资源,但是操作的动作不同
wait(),notify(),notifyAll()
线程的安全问题:
多线程很多情况下涉及很多个线程访问同一个资源,这时候就会造成数据的不安全,这时候就要加同步锁,关键字synchronized.
对于加的锁,要保证锁的对象的唯一性,可以用object对象,也可以用字节码对象,因为字节码对象也是独一无二的
格式
synchronized(obj){需要同步的资源}
在函数上进行同步
同步方法是指进入该方法时需要获取this对象的同步锁
public synchronized void t(){}
必须保证同步中只能又一个线程在运行
同步的弊端,较为消耗资源
分享到:
相关推荐
2013黑马训练营全套net视频 30G 网盘下载
黑马训练营.net第高清完整版版74天
黑马训练营.net第12期74天完整版(高清绝密版)
黑马程序员——Android移动开发源码
该系列视频是黑马训练营.Net学习视频,仅供大家分享。。
黑马训练营红孩子商城APP完整源码(客户端和服务端) 亲测可用 注意改IP
黑马训练营49期javaEE 培训视频,高清视频,配套资料齐全。 课程目录 01-JavaSE知识(学习27天) 02-Web前端知识(学习5天) 03-MySql数据库与JDBC(学习3天) 04-JavaWeb知识(学习12天) 05-JavaWeb企业实战项目(学习6天)...
自己写的作业,没有完成!打印100次“欢迎您来黑马训练营学习”
黑马程序员训练营基础测试 ios ios自荐信模板和iosexam
通达信指标公式源码捕捉大黑马的好指标——黑马柱.doc
黑马软件训练营.NET全套教学视频,仅需一个积分,欢迎下载。
黑马程序员训练营基础测试,北京中关村黑马程序员的基础测试试题,随机产生
黑马程序员训练营CSDN创始人 蒋涛2010-12-09
冒泡代码 黑马程序员,2月3号开学,努力呀,yy
NULL 博文链接:https://lvwenwen.iteye.com/blog/1470696
kotlin的学习, kotlin非空判断 字符串 四种函数表达式
8. 黑马旅游网——旅游线路的详情展示-附件资源
黑马程序员入学Java知识——精华总结
当一个进程中线程有多个时,是多线程。 为什么要用多线程 1,让计算机"同时"做多件事情,节约时间。 2,后台运行程序,提高程序的运行效率.。 3,多线程可以让程序"同时"处理多个事情。 4,...