这就是线程
来源:互联网 发布:英雄无敌3括号数据 编辑:程序博客网 时间:2024/06/05 00:50
进程,线程,高并发概念.
进程:在操作系统之中一个程序的执行周期就成为一个进程;进程要用到IO,cpu,内存.windows,多个程序可以一起执行,所以windows系统属于多进程的操作系统.
线程:在进程地基础上进一步划分,也就是说线程是比进程更小的单位.
很明显线程所花费的时间比进程短,也就是说进程比线程慢.
java本身是一个多线程的编程语言,所以其执行的性能一定很快.
高并发:指的是访问的线程量爆高,高并发的最直白的问题就是:服务的内存不够用的,无法处理新用户.
想要实现多线程,必须有一个线程的执行主类.
要想实现一个线程的主类,有两类途径(三种实现模式):
1,继承一个thread类
2,实现Runnable,Callable接口.
start()方法是在Thread类中定义,run()方法是在Runnable接口中定义,所有类必须实现run()方法,多线程的启动永远都必须使用Thread类的start()方法。
线程休眠:让线程暂缓一下执行,等到了预计时间之后再回复执行.
· 方法:public static void sleep(long millis) throws InterruptedException; |- 休眠的时间使用毫秒作为单位。
面试题:Thread类与Runnable接口实现多线程的区别
1.
Thread是Runnable接口的子类,覆写了Runnable接口的run()方法,Thread类的构造方法可以直接接收Runnable接口类型;
1.
start()方法由Thread类定义,不管使用何种方式实现多线程,最终都必须使用Thread类的start()方法启动多线程;
2.
Runnable接口使用更方便,可以避免Thread类的单继承局限;
3.
Runnable接口能更好的表现出数据共享的概念。
线程相关
取得当前线程:Thread.currentThread().getName();
JAVA运行最少保留线程,一个是main,一个是gc
线程优先级:
setPriority(int grade)、getPriority()。三个优先级:高-10 中-5 低-1
main线程的优先级是中等
线程的同步与死锁(卖票案例)
同步关键字synchronized,如果多个线程访问同一个资源(数据共享),就必须考虑同步,但是同步过多可能造成死锁。
锁有两种:可以锁方法,可以锁对象;
异步处理:速度快,但是线性不安全,容易出现数据不完整.
面试题:wait()与sleep()的区别
1.
两个方法都抛出异常:interruptedException
1.
wait()是Object类定义的方法,而sleep()是Thread类定义的方法
2.
wait()等待后需要通过方法notify()和notifyAll()唤醒,而sleep到指定时间自动唤醒。
注意:super.wait()指的是当前调用线程等待,而不是让其他线程等待,而notify唤醒指的是让其他线程唤醒
线程池
线程池给开发者带来唯一的好处是允许多个线程按照组的模式进行程序的处理,这样在某一个业务逻辑非常复杂的环境下,性能就会得到很好的提升。
- 这就是线程
- 线程管理 就是这么简单
- “线程不安全”就是这样任性
- 线程同步之信号量("旗帜"就是方向,"旗帜"就是形象, "旗帜"就是指挥棒)
- setDaemon(true)后就是后台线程(守护线程 ),反之就是前台线程(用户线程)
- 这就是“爱情”,这就是“婚姻!”
- 我就是我,这就是我
- 这就是软件公司吗?
- 这就是生活
- 这就是DELL??!!
- 这就是差距啊。。。
- 这就是我
- 这就是毅力
- 这就是csdn blog
- 原来这就是爱情
- 这就是生活吧
- 这就是红楼梦中人?
- 好了就是这了
- Mybatis 实现物理分页的简单实现
- 关于MySQL建表对DML的影响【转】
- 2017 计蒜之道 初赛 第六场 微软大楼设计方案(中等)【思维+RMQ】
- POJ 1776 Task Sequences 笔记
- 图的学习-huffman code
- 这就是线程
- Android开发与MVC设计模式
- POJ 1012 Joseph
- 关于wifi密码获取(恶意攻击)
- Windows 采用Socket方式实现服务器和客户端的数据访问
- 2017年上海金马五校程序设计竞赛:Problem I : Frog's Jumping
- 算法--枚举策略
- 正则表达式大全
- Django11-表单(Form)