java学习总结(线程基础)

线程学习总结

1.基础知识
 1.每一个程序就是一个进程,一个进程有一个或者多个线程组成。
 2.进程之间的通信,一般要通过网络。如在异地的两个QQ程序之间的通信,这就是两个进程通过网络进行数据交换。
 3.进程中的各个线程可以共享同一个进程的资源数据。
2.线程基础
 1.Runnable接口是实现线程的接口。
 2.用Thread类可以实例化一个线程,Thread就是实现了Runnable接口的线程类。
 3.我们要重写线程类中的run()方法。
 4.线程的启动:通过调用线程对象的start()方法可以启动线程,让线程执行线程类中的run()方法。
 
3.线程的创建
 1.如果一个类A继承了Thread类,那么要实例化线程类对象,就可以直接
  

A a = new A();

  2.如果一个类B是实现了Runnable接口,那么要实例化线程类对象,格式是
  

B b = new B();//先实例化B类
  Thread th = new Thread(b);//再创建线程类对象,并以B的实例化对象b作为参数

  3.线程的启动,调用线程对象的start()方法。
 

 a.start();
  th.start();

  4.无论是继承了Thread类还是实现了Runnable接口,其实都是实现了Runnable接口。我们要重写类中的run()方法。
 5.下面是以内部类的方式创建线程的实例
  

public class InterThreadTest {
 /**
  * 测试匿名线程创建,以内部类的方式创建线程
  * @author XMH
  * @param args
  */
 // 主程序入口
 public static void main(String[] args) {
  InterThreadTest interTT = new InterThreadTest();
  for (int i = 0; i < 10; i++) {
   // 调用本内中的方法
   interTT.startMyThread(i);
  }
 }
 public void startMyThread(int threadID) {
  // 要传入匿名线程内使用的参数必须定义为final型
  final int id = threadID;
  // 内部的线程类
  java.lang.Runnable runner = new java.lang.Runnable() {
   public void run() {//重写run()方法
    boolean flag = true;
    while (flag) {
     try {
      Thread.sleep(3000);//线程休眠3000毫秒,即3秒
      // 在匿名线程内中调用类中的其他方法
      otherMethod(id);

     } catch (InterruptedException e) {
      e.printStackTrace();
     }
    }
   }
  };
  // 最后启动这个内部线程
  Thread t = new Thread(runner);
  t.start();
 }
 private void otherMethod(int i) {
  System.out.println("可以直接调用内中的其他方法" + i);
 }
}

 

你可能感兴趣的:(java,thread,qq)