1.可在任何一任务的内部,调用Thread.currentThread()来获取对驱动该任务的Thread对象的引用。
2.重写类的toString()函数,执行System.Out.println(this),将输出新定义的字符串。
3.Thread.setPriority可以改变线程的优先级,要在run()方法中而不是构造函数中,否则Executor还没有开始执行任务。(????)
4.守护线程/后台线程/Daemon线程。所有后台线程结束时,程序终止并杀死进程中的所有后台线程。只要有任何非后台线程在运行,程序就不会终止。比如,执行main()函数的就是一个非后台线程(否则只有main线程的时候根本启动不起来吧。。。).必须在线程启动前调用setDaemon()方法,才能把它设置为后台线程
5.线程休眠:TimeUnit.MILLISECONDS.sleep(100);Thread.sleep(100);(前者可以看出休眠时间单位)
6.ThreadFactory作用????
7.解决共享资源竞争:基本所有的并发模式在解决线程冲突问题的时候,都是采用序列化访问共享资源的方案,即在给定时刻只允许一个任务访问共享资源。(一个一个来!)
8.同步方法:(1)synchronized同步方法;(2)synchronized同步控制块;(3)Lock显示加锁;(4)AtomicInteger等原子性变量类;