java线程拙见
线程实现
extends Thread类
implements Runnable 接口
线程简介
线程是程序运行中的一条"线",java的官方文档的介绍是这样说的:“A thread is a thread of execution in a program。”
在JVM中运行一个程序拥有多个并发的线程。
线程优先级
每个线程都有一个属于自己的优先级。优先级高的线程比优先级低的进程先运行。每一个线程可能会被标记为守护进程。
当一个线程运行的代码产生一个线程时,这个线程和创建它的线程优先级相等,当且仅当创建线程是守护进程时,被创建的线程才是守护进程。
必须重写run方法
run线程去运行的方法
main方法里的是主线程
线程间的通信
在一个程序中,所有的线程之间可以互相访问数据,我们可以通过线程的对象拿到数据。
线程番外
我们知道static关键字可以修饰变量,使其作为一个静态变量,静态变量的含义是"独一份"。也就是说静态变量属于类,不属于对象,而且不需要创建对象就可以使用,静态方法同样如此。
假设现有static int n,那么我们考虑一个问题,所有的线程访问的n都是同一个n,线程又是并发的,所以就会出现一个经典问题:资源竞争。
这个问题出现的场景就是我们生活中的抢票问题,那么到底是如何解决的呢,如何保证每个抢到的票不是同一张呢?