青州市住房和城乡建设局网站,wordpress手机验证码插件,wordpress分布式,php wordpress开源一、资源 http://blog.csdn.net/axman/article/details/431796 这个博客里有Java多线程、线程池的一系列#xff0c;从基础开始就很清楚#xff0c;牛人 二、重点 今天读到了基础篇(三)#xff0c;跳过了后面的方法介绍#xff0c;以后估计还得补上来的.... 做笔记...... 1…一、资源 http://blog.csdn.net/axman/article/details/431796 这个博客里有Java多线程、线程池的一系列从基础开始就很清楚牛人 二、重点 今天读到了基础篇(三)跳过了后面的方法介绍以后估计还得补上来的.... 做笔记...... 1、线程对象和线程 线程对象一个Object类线程执行形式的封装 线程真正执行的那什么.. 2、JVM到底做了什么 JVM进程被启动,在同一个JVM进程中,有且只有一个进程,就是它自己.然后在这个JVM环境中, 所有程序的运行都是以线程来运行.JVM最先会产生一个主线程,由它来运行指定程序的入口点.在这个程序中,就是主线程从main方法开始运行.当main方法结束后,主线程运行完成.JVM进程也随之退出. 我们看到的是一个主线程在运行main方法,这样的只有一个线程执行程序逻辑的流程我们称之为单线程.这是JVM提供给我们的单线程环境,事实上,JVM底层还至少有垃圾回收这样的后台线程以及其它非java线程,但这些线程结我们而言不可访问,我们只认为它是单线程的. 3、并行和并发 并行单CPU中通过调度在线程直接切换 并发: 多CPU中同时让两个以上线程同时运行 疑惑1我的理解单行时其实某一时间点上只有一个线程在跑 疑惑2我的理解等于某个时间点可以有多个线程跑那系统的进程和线程是什么关系一个进程类似于一个程序的运行空间而线程则是进程里的某些任务的执行通道 4、thread.start() 你只要调用start()方法,JVM就会管理这个线程对象让它产生一个线程并注册到线程处理系统中线程栈. start()方法最本质的功能是从CPU中申请另一个线程空间来执行run()方法中的代码,它和当前的线程是 两条线,在相对独立的线程空间运行,也就是说,如果你直接调用线程对象的run()方法,当然也会执行,但 那是在当前线程中执行,run()方法执行完成后继续执行下面的代码.而调用start()方法后,run()方法的 代码会和当前线程并发(单CPU)或并行(多CPU)执行. 一个Thread的实例一旦调用start()方法,这个实例的started标记就标记为true,事实中不管这个线程 后来有没有执行到底,只要调用了一次start()就再也没有机会运行了,这意味着: [通过Thread实例的start(),一个Thread的实例只能产生一个线程] public synchronized void start() {if (started)throw new IllegalThreadStateException(); started true; group.add(this); start0(); } 5、thread(new Runanle()).start() 一个Runnable实例给Thread对象多次包装,我们就可以看到它们实际是在同一实例上启动线程 例子在资源博客http://blog.csdn.net/axman/article/details/420892中 我的理解 这里很奇怪我觉得 R r new R(); for(int i0;i10;i) { new Thread(r).start(); } 虽然每次都是 new Thread(r).start(),但是按照博客的说法应该是在一个线程那这说明了线程对象和线程的区别每次新建的线程对象肯定是不一样的但是他们启动的线程是一样的是这样理解的么转载于:https://www.cnblogs.com/hundan/archive/2011/09/04/2166086.html