1、多进程与多线程多进程:在操作系统中能(同时)运行多个任务(程序) ;多线程:在同一个应用程序中有多个顺序流(同时)执行。创建线程的方法:方式一:定义一个线程类,它继承类 Thread 并重写其中的方法 run( ),方法 run( )称为线程体;由于 Java 只支持单继承,用这种方法定义的类不能再继承其他类。1、FirstThread.java 文件:public class FirstThread extends Threadpublic void run()for(int i = 0; i “+i);2、Test.java 文件:public class Test public stat
2、ic void main(String args) /生成线程类的对象FirstThread ft = new FirstThread();/启动线程ft.start( ); /千万不能写成这样:ft.run( );for(int i = 0; i “+i);方式二:提供一个实现接口 Runnable 的类作为线程的目标对象,在初始化一个 Thread 类或者 Thread 子类的线程对象时,把目标对象传递给这个线程实例,由该目标对象提供线程体。1、 RunnableImpl文件:public class RunnableImpl implements Runnable public void
3、 run()for(int i=0; i “+i);2、 testOne文件:public class testOne public static void main(String args) / TODO Auto-generated method stub/生成一个Runnable接口实现类的对象RunnableImpl ri = new RunnableImpl();/生成一个Thread对象,并将Runnable 接口实现类的对象/做为参数传递给该Thread对象Thread t = new Thread(ri);/通知Thread 对象,执行 start( )方法t.start();
4、线程的简单控制方法:中断线程:-Thread.sleep( )-Thread.yield( ) /线程自动让出 CPU,再进入线程抢占状态设置线程的优先级:-getPriority( )-setPriority( )public class RunnableImpl implements Runnable public void run()for(int i=0; i “+i);if(10 = i)tryThread.sleep(2000);catch(Exception e)System.out.print(e);设置线程优先级:public class testOne public sta
5、tic void main(String args) / TODO Auto-generated method stub/生成一个Runnable接口实现类的对象RunnableImpl ri = new RunnableImpl();/生成一个Thread对象,并将Runnable 接口实现类的对象/做为参数传递给该Thread对象Thread t = new Thread(ri);/线程的优先级最大为10,最小为1t.setPriority(Thread.MAX_PRIORITY); /Thread.MIN_PRIORITY 1,10/通知Thread 对象,执行 start( )方法t.
6、start();System.out.print(t.getPriority();线程同步:1、MyThread.java 文件:class MyThread implements Runnableint i=20;public void run( )while(true)synchronized(this) /同步锁System.out.println(Thread.currentThread().getName()+i);i-;Thread.yield();if(i arrayList = new ArrayList( );arrayList.add(“a“);arrayList.add(
7、“b“);arrayList.add(“c“);String s = arrayList.get(1); /取索引号为1 的对象;for(int i = 0; i hashset = new HashSet();Set set =hashset;set.add(“a“);set.add(“b“);set.add(“c“);set.add(“c“);System.out.println(set.size(); /输出3,相同的元素被忽略set.remove(“a“);对 set 中元素访问:迭代器import java.util.Iterator;import java.util.Set;imp
8、ort java.util.HashSet;public class Test public static void main(String args) HashSet hashset = new HashSet();Set set =hashset;/Iterator 调用set对象的iterator()生成迭代器对象,/用该对象遍历整个setIterator it = set.iterator();while(it.hasNext()String s=it.next( );System.out.println(s);什么是映射?映射中的每一个元素包含一个键对象和一个值对象,键不可以重复,值
9、可以重复。import java.util.Map;import java.util.HashMap;public class Test public static void main(String args) HashMap hashMap = new HashMap( );Map map = hashMap;map.put(“1“,“a“);map.put(“2“, “b“);map.put(“3“,“c“);map.put(“2“, “e“); /覆盖掉值为“b”的键值对int i = map.size();System.out.println(i);String s = map.get(“2“);System.out.println(s);