zoukankan      html  css  js  c++  java
  • 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的使用率更高

  • 相关阅读:
    centos 安装 TortoiseSVN svn 客户端
    linux 定时任务 日志记录
    centos6.5 安装PHP7.0支持nginx
    linux root 用户 定时任务添加
    composer 一些使用说明
    laravel cookie写入
    laravel composer 安装指定版本以及基本的配置
    mysql 删除重复记录语句
    linux php redis 扩展安装
    linux php 安装 memcache 扩展
  • 原文地址:https://www.cnblogs.com/zs0322/p/11050511.html
Copyright © 2011-2022 走看看