/*
线程和String的用法
*/
线程:
线程可以说是程序中最重要的一个概念在java处理中。那么什么是线程呢?在处理和解决这个概念之前,我们不得不说一些与线程有紧密关联的进程。进程是一个正在执行中的程序,它是一个动态概念,然而一个程序在执行过程中也应该有它执行的先后顺序。那么线程就是控制它执行的那个功能单元。
那么当我们了解了线程的概念后,那么问题又来了?如何创建线程呢?
线程的创建有两种方式:一个是继承方式。二是实现runnable接口
那么如何使用继承方式来创建线程呢?
(1)继承Thread类
(2)覆写thread类中的run方法。
(3)调用start()方法,它的目的是开启线程,并调用run方法。
运行结果:
多次运行按照理论来说,结果应该是不一样的。可能线程比较少看不出效果。
二使用runnnable接口来处理线程。
既然有了继承创建线程,那么何必还要使用runnnable来创建呢?
因为继承只能单继承,有局限性。所以在实际开发中我们常常使用的是用runnnable来创建线程。
它是如何创建的呢?
(1):定义类实现runnnable接口。
(2):覆盖runnnable中的run方法。跟继承类似。
(3):通过thread类创建线程对象。
(4):将runnnable接口的子类对象作为实际参数传递给thread类的构造函数。
(5):调用thread类的start()方法开启线程,并调用runnnable接口子类中实现的run方法。
通过runnnable接口创建线程是比较复杂的。虽然它的灵活性高,但是操作要求高。
这次运行的结果就充分体现出它的不确定性:
至此线程的两大创建就基本总结至此了!
String:
首先这是一个字符类,我们很多人会认为它是一个类似于int这个的类型。
String=“abc";这虽然是一个简单的动作,但是它的实际过程非常复杂,首先它是只能赋值一次,不可以改变。它跟StringBuffer有完全不同的搬运模式。
String s=new String("abc");
这样一个复杂的过程,字符串是一个常用的操作,包括,CRUD,各种对它的操作方法。