• commons-IO、多线程


    summarize:

    commons-Io 就是一个jar包: 导包:建个项目,在建个lib目录,然后复制jar包 ,在lib目录粘贴,Build Path→Add to Build Path 调出牛奶瓶

    FilenameUtils  处理文件名,扩展名,判断是否为xxx后缀名

    FileUtils  对文件和目录写、读、复制、移动等

     多线程

    进程:就是正在运行的程序,在内存中运行,一个程序进入内存,就是一个进程

    线程:进程里的一个单元,一个进程至少一个线程,也可以多个线程,叫多线程程序

    一个运行中的程序至少有一个进程,一个进程可以包含多个线程

    单线程:依次执行 没运行的排队等候
    多线程:同时执行 

    程序运行原理:

    分时调度:轮流使用,平均分配;
    抢占式调度:优先级高的使用,相同的随机选择!

    原理图:

    FilenameUtils

    处理文件名(包含文件路径、后缀名)

    方法:

    getExtension(String path):获取文件的扩展名;

    getName(String filename):获取文件名;

    isExtension(String fileName,String ext):判断fileName是否是ext后缀名

    package com.oracle.demo01;
    //处理文件名  FilenameUtils
    import org.apache.commons.io.FilenameUtils;
    
    public class Demo01 {
        public static void main(String[] args) {
    //        获取文件扩展名
            String ext=FilenameUtils.getExtension("f:\java\a.txt");
            System.out.println("扩展名为"+ext);
    //        获取文件名
            String fname=FilenameUtils.getName("f:\java\a.txt");
            System.out.println("文件夹名为"+fname);
    //        判断扩展名
            boolean flag=FilenameUtils.isExtension("f:\java\a.txt","txt");
            System.out.println(flag);
        }
    }

    FileUtils

    文件操作(移动文件,读取文件,检查文件是否存在等等)

    readFileToString(File file):读取文件内容,并返回一个String

    writeStringToFile(File file,String content):将内容content写入到file中;

    copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制

    copyFile(File srcFile,File destFile);文件复制

    package com.oracle.demo01;
    //文件工具  FileUtils  写 读 复制
    import java.io.File;
    import java.io.IOException;
    import org.apache.commons.io.FileUtils;
    
    public class Demo02 {
        public static void main(String[] args) throws IOException {
    //        copydir();
    //        read();
    //        write();
        }
        public static void read() throws IOException{
    //        明确数据源
            File file=new File("f:\java\a.txt");
    //        从文件中读取内容
            String content=FileUtils.readFileToString(file);
            System.out.println(content);
        }
        public static void write() throws IOException{
    //        明确目的地
            File file=new File("f:\java\a.txt");
            FileUtils.writeStringToFile(file, "你好吗",true);//
        }
    //    复制文件夹
        public static void copydir() throws IOException{
    //        明确数据源
            File src=new File("f:\java");
    //        明确目的地
            File dest=new File("f:\java2");
    //        开始复制
            FileUtils.copyDirectoryToDirectory(src, dest);
        }
    }

    多线程

    360多线程原理图

    进程:指正在运行的程序,一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能

    线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。这个应用程序也可以称之为多线程程序

    总结:一个程序运行后至少有一个进程,一个进程中可以包含多个线程

    程序运行原理

    单线程:依次运行

    分时调度:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间

    抢占式调度:让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度

    package com.oracle.demo02;
    
    public class Demo01 {
        public static void main(String[] args) {
    //        单线程程序原理
            for(int i=0;i<100;i++){
                System.out.println(i);
            }
            System.out.println("我在排队");
        }
    }

     抢占式调度

    大部分操作系统都支持多进程并发运行,现在几乎都支持同时运行多个程序。这些程序是在同时运行,”感觉这些软件好像在同一时刻运行着“

    实际上,CPU(中央处理器)使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核而言,某个时刻,只能执行一个线程,而 CPU的在多个线程间切换速度相对我们的感觉要快,看上去就是在同一时刻运行。其实多线程程序并不能提高程序的运行速度但能提高程序运行效率,让CPU的使用率更高

  • 相关阅读:
    bzoj 1295 [SCOI2009]最长距离 最短路
    bzoj 3669 [Noi2014]魔法森林
    bzoj 1432 [ZJOI2009]Function 思想
    用JSP输出Hello World
    Web开发基础
    JSP相关背景
    JSP概述
    Java视频播放器的制作
    为JFileChooser设定扩展名过滤
    使用JFileChooser保存文件
  • 原文地址:https://www.cnblogs.com/zs0322/p/11050511.html
Copyright © 2020-2023  润新知