Java多线程,集合框架(附简单代码).doc_第1页
Java多线程,集合框架(附简单代码).doc_第2页
Java多线程,集合框架(附简单代码).doc_第3页
Java多线程,集合框架(附简单代码).doc_第4页
Java多线程,集合框架(附简单代码).doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多进程与多线程多进程:在操作系统中能(同时)运行多个任务(程序);多线程:在同一个应用程序中有多个顺序流(同时)执行。创建线程的方法:方式一:定义一个线程类,它继承类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 static 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 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();线程的简单控制方法:中断线程:-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 static 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.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 0)break;2、Test.java文件:public class testOne public static void main(String args) MyThread myThread = new MyThread();/生成两个Thread对象,但是两个对象公用同一个线程体Thread t1 = new Thread(myThread);Thread t2 = new Thread(myThread);/每一个线程都有名字,可以通过Thread对象的setName( )方法设置名字,/也可以通过getName( )方法获取线程的名字t1.setName(线程a); t2.setName(线程b);/分别启动两个线程t1.start( );t2.start( );数组的动态声明:int arr = new int10;什么事类集框架?1、类集框架是一组类和接口;2、位于java.util包当中;3、主要用于存储和管理对象;4、主要分为三大类-集合、列表和映射。集合(Set):集合中的对象不按特定的方式排列,并且没有重复对象;列表(List):集合中对象按照索引位置排序,可以有重复的对象;映射(Map):集合中的每一个元素包含一个键对象和一个值对象,键不可以重复,值可以重复(键值对)。eg:import java.util.List;import java.util.ArrayList;public class Testpublic static void main(String args) ArrayList arrayList = new ArrayList( );arrayList.add(a);arrayList.add(b);arrayList.add(c);String s = arrayList.get(1); /取索引号为1的对象;for(int i = 0; iarrayList.size(); i+)System.out.println(arrayList.get(i);arrayList.remove(1); /删除索引号为1的对象Collection接口: boolean add(Object o) 向集合当中加入一个对象 void velar( ) 删除集合当中的所有对象 boolean isEmpty( ) 判断集合是否为空 remove(Object o) 从集合中删除一个对象的索引 int size( ) 返回集合中元素的数目eg:import java.util.Set;import java.util.HashSet;public class Testpublic static void main(String args )HashSet 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;import java.util.HashSet;public class Test public static void main(String args) HashSet hashset = new HashSet();Set set =hashset; /Iterator -Collection-Set调用set对象的iterator()生成迭代器对象,/用该对象遍历整个setIterator it = set.iterator();while(it.hasNext()String s=it.next( );System.out.println(s);什么是映射?映射中的每一个元素包含一个键对象和一个值对象,键不可以重复,值可以重复。import java.util.Map;import java.util.HashMap;public class Test public static void main(String args) HashMap hashMap = n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论