贵州省清镇网站建设公司-清镇专业网页设计公司-清镇高端网站制作-清镇品牌网站设计-清镇页面美工-清镇上档次网站建设-清镇定制个性化网站开发-清镇一站式一条龙网站搭建

1950年设贵阳专区,专署驻贵筑县。辖贵筑(驻花溪)、龙里(驻龙山镇)、惠水、长顺(驻长寨)、清镇、修文、息烽(驻永靖镇)、开阳、瓮安、贵定等10县。
1951年将独山专区所属罗甸县(驻罗斛)划归贵阳专区。贵阳专区辖11县。
1952年贵阳专区改称贵定专区,专署驻贵定县。将贵筑县划归贵阳市领导。惠水县改设惠水县苗族补伊族联合自治区。辖9县、1自治区。
1954年惠水县苗族补伊族联合自治区改名为惠水县布依族苗族自治区;罗甸县改设罗甸县布依族自治区。贵定专区辖8县、2自治区。
1955年原属贵阳市领导的贵筑县划入贵定专区。惠水县布依族苗族自治区改设惠水布依族苗族自治县;罗甸县布依族自治区改设罗甸布依族自治县。贵定专区辖9县、2自治县。
1956年撤销贵定专区,将清镇、息烽、修文、开阳、瓮安、贵定、龙里、贵筑8县划归安顺专区;长顺县和罗甸布依族自治县、惠水布依族自治县划归黔南布依族苗族自治州。
历史沿革
1949年置。在今贵州省西部。辖安顺、平坝、镇宁、普定、紫云、郎岱等县。专员公署驻安顺县(今市)。
1956年,清镇、贵筑、龙里、贵定、福泉、瓮安、息烽、修文、开阳、晴隆、普安、盘县、郎岱、关岭、兴仁、兴义等县划入;紫云、镇宁二县划归黔南布依族苗族自治州。
1957年,撤销贵筑县。
1958年,设安顺市;撤销关岭、安顺、晴隆、福泉、龙里五县;清镇、修文、开阳三县划归贵阳市;瓮安、龙里、贵定三县划归黔南布依族自治州;息烽县划归遵义专区;安龙、册亨、贞丰、镇宁四县划入;同年撤销贞丰、册亨二县。
1960年,撤销郎岱县,设六枝市。
1961年,恢复关岭、册亨、贞丰、晴隆四县。
1962年,撤销安顺市,恢复安顺县;撤销六枝市,恢复六枝县。
1963年,修义、清镇二县划入;镇宁县改设镇宁布依族苗族自治县;贞丰、册亨、安龙三县划归黔南布依族苗族自治州。
1965年,兴义、兴仁、睛隆、普安、盘县五县划归兴义专区;息烽、开阳、紫云三县划入;紫云县改设紫云苗族布依族自治县。
1966年,恢复安顺市;六枝县改名郎岱县;设六枝特区。
1970年,改置安顺地区,郎岱县撤销并入六枝特区,并划入新成立的六盘水地区。
ThreadClassDemo.java 文件代码:
public class ThreadClassDemo {
public static void main(String [] args) {
Runnable hello = new DisplayMessage("Hello"); Thread thread1 = new Thread(hello); thread1.setDaemon(true); thread1.setName("hello"); System.out.println("Starting hello thread..."); thread1.start();
Runnable bye = new DisplayMessage("Goodbye"); Thread thread2 = new Thread(bye); thread2.setPriority(Thread.MIN_PRIORITY); thread2.setDaemon(true); System.out.println("Starting goodbye thread..."); thread2.start();
System.out.println("Starting thread3..."); Thread thread3 = new GuessANumber(27); thread3.start(); try {
thread3.join(); }catch(InterruptedException e) {
System.out.println("Thread interrupted."); }
System.out.println("Starting thread4..."); Thread thread4 = new GuessANumber(75);
thread4.start(); System.out.println("main() is ending..."); }}
运行结果如下,每一次运行的结果都不一样。
Starting hello thread...Starting goodbye thread...HelloHelloHelloHelloHelloHelloGoodbyeGoodbyeGoodbyeGoodbyeGoodbye.......
通过 Callable 和 Future 创建线程
1. 创建 Callable 接口的实现类,并实现 call() 方法,该 call() 方法将作为线程执行体,并且有返回值。
2. 创建 Callable 实现类的实例,使用 FutureTask 类来包装 Callable 对象,该 FutureTask 对象封装了该 Callable 对象的 call() 方法的返回值。
3. 使用 FutureTask 对象作为 Thread 对象的 target 创建并启动新线程。
4. 调用 FutureTask 对象的 get() 方法来获得子线程执行结束后的返回值。
实例
public class CallableThreadTest implements Callable<Integer> {
public static void main(String[] args)
{
CallableThreadTest ctt = new CallableThreadTest();
FutureTask<Integer> ft = new FutureTask<>(ctt);
for(int i = 0;i < 100;i++)
{
System.out.println(Thread.currentThread().getName()+" 的循环变量i的值"+i);
if(i==20)
{
new Thread(ft,"有返回值的线程").start();
}
}
try
{
System.out.println("子线程的返回值:"+ft.get());
} catch (InterruptedException e)
{
e.printStackTrace();
} catch (ExecutionException e)
{
e.printStackTrace();
}
}
@Override
public Integer call() throws Exception
{
int i = 0;
for(;i<100;i++)
{
System.out.println(Thread.currentThread().getName()+" "+i);
}
return i;
} }
创建线程的三种方式的对比
线程的几个主要概念
在多线程编程时,你需要了解以下几个概念:
线程同步
线程间通信
线程死锁
线程控制:挂起、停止和恢复
多线程的使用
有效利用多线程的关键是理解程序是并发执行而不是串行执行的。例如:程序中有两个子系统需要并发执行,这时候就需要利用多线程编程。
通过对多线程的使用,可以编写出非常高效的程序。不过请注意,如果你创建太多的线程,程序执行的效率实际上是降低了,而不是提升了。
请记住,上下文的切换开销也很重要,如果你创建了太多的线程,CPU 花费在上下文的切换的时间将多于执行程序的时间!
贵州省清镇网站建设公司-清镇专业网页设计公司-清镇高端网站制作-清镇品牌网站设计-清镇页面美工-清镇上档次网站建设-清镇定制个性化网站开发-清镇一站式一条龙网站搭建