*java网络编程 TCP和UDP,进程和线程

*java网络编程

客户端 -> 服务器

-TCP

-UDP

URL: 统一资源定位符号

Class URL表示统一资源定位符,指向万维网上的“资源”的指针。

资源可以像文件或目录一样简单,或者可以是对更复杂的对象的引用,例如对数据库或搜索引擎的查询。

组成: 【协议+主机地址+端口号+资源路径+查询参数+锚点】

方法:

String getFile()

获取此 URL的文件名。

String getHost()

获取此 URL的主机名(如适用)。

String getPath()

获取此 URL的路径部分。

int getPort()

获取此 URL的端口号。

String getProtocol()

获取此 URL的协议名称。

String getQuery()

获取此 URL的查询部分。

String getRef()

获取此的锚定(也称为“参考”) URL 。

InetAddress: Internet协议(IP)地址

方法:

byte[] getAddress()

返回此 InetAddress对象的原始IP地址。

static InetAddress[] getAllByName(String host)

给定主机的名称,根据系统上配置的名称服务返回其IP地址数组。

static InetAddress getByAddress(byte[] addr)

给出原始IP地址的 InetAddress对象。

static InetAddress getByAddress(String host, byte[] addr)

根据提供的主机名和IP地址创建InetAddress。

static InetAddress getByName(String host)

确定主机名称的IP地址。

String getCanonicalHostName()

获取此IP地址的完全限定域名。

String getHostAddress()

返回文本显示中的IP地址字符串。

String getHostName()

获取此IP地址的主机名。

static InetAddress getLocalHost()

返回本地主机的地址。

-TCP编程

TCP: 传输控制协议

特点: 面向连接,有序的,可靠的,以字节流的方式传输数据。

作用类:

服务器: ServerScoket

客户端: Socket

-UDP编程

UDP: 用户数据报协议

特点: 面向无连接,不可靠的,无序的,以数据包(DatagramPacket)的方式发生数据。

传输效率高。

DatagramSocket:通信类

DatagramPacket:数据报包类。

*进程和线程

每个独立执行的程序称为进程。

线程是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源,

多个线程共享内存,从而极大地提高了程序的运行效率。

进程与线程的关系

> 进程的产生,肯定会产生至少一个以上的线程;

>

> 进程关闭,该进程内的线程会全部销毁;

>

> 线程销毁,进程未必会关闭

多线程,指的是一个进程内的多个任务并发执行。

多线程的好处:可以更高效地利用CPU资源,同时,让固定流程的程序更加灵活;

注意:多个线程之间,谁先抢占到资源,谁就先执行。

*多线程实现

1.继承Thread类

2.实现Runnable接口

3.实现Callable接口

4.线程池

-Runnable和Callable的区别:

  (1)Callable规定的方法是call(),Runnable规定的方法是run().

  (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得

  (3)call方法可以抛出异常,run方法不可以,因为run方法本身没有抛出异常,

所以自定义的线程类在重写run的时候也无法抛出异常

  (4)运行Callable任务可以拿到一个Future对象,表示异步计算的结果。

它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。

通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。

*多线程生命周期

*线程常用方法

static Thread currentThread() :返回对当前正在执行的线程对象的引用。

String getName() :返回此线程的名称。

void setName(String name) :将此线程的名称更改为等于参数 name 。

long getId() :返回此线程的标识符。

int getPriority() :返回此线程的优先级。

void join() :等待这个线程死亡。

static void sleep(long millis)

使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行),具体取决于系统定时器和调度程序的精度和准确性。

static void yield() 对调度程序的一个暗示,即当前线程愿意产生当前使用的处理器。 (线程礼让)

  • 39
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值