20200820复盘

1为什么9月份要防守:

a.大盘资金翻绿多次背离,牛线有下移风险

b.从周线大波段看存在上涨末期调整的可能,不赌

c.控制好仓位市场跌才有钱买券商

2.防守策略原则

a.横盘不买,下跌买,遇到压力就卖,不赌突破

b.买在下跌前,只吃60-70%的涨幅

603259(药明康德) 600887 (伊利股份)600276(恒瑞医药)600703(三安光电)603517( 绝味食品 )

操作策略

选股方式:

  • 做主力高控盘的票:选出主力高控盘+水手次上趋势;选出主力高控盘+流动资金三日红;
  • 单峰密集突破票:单峰密集+突破;这里不一定要单峰,选出突破,现在的突破指标貌似都是低价股;突破+三日红或者控盘增加
  • 照远
  • 涨停+三日缩量
  • 通过周线选股周线刚金叉+周线死叉3周

看盘要素:

  • 大盘分析
  • 月线周线情况
  • 是否存在背离、画线
  • 除了技术面更加关注板块,先关注板块再选个股

linux让ssh只允许指定的用户登录

方法1:在/etc/pam.d/sshd文件 第一行 加入
auth required pam_listfile.so item=user sense=allow file=/etc/sshusers
onerr=fail
然后在/etc下建立sshusers文件,编辑这个文件,加入你允许使用ssh服务的用户名, 不用重新启动sshd服务。
添加2个用户
zhym

方法2:pam规则也可以写成deny的

auth required pam_listfile.so item=user sense=deny file=/etc/sshusers
onerr=succeed

方法3:pam规则可以使用group限制
auth required pam_listfile.so item=group sense=allow file=/etc/security/allow_groups onerr=fail
在allow_groups文件按中加入组名,主要一定要加root

方法4:在sshd_config中设置AllowUsers,格式如
AllowUsers a b c
重启sshd服务,则只有a/b/c3个用户可以登陆

Java中的 FutureTask

package cn.com.zhangyimin.test;

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
import java.util.concurrent.TimeUnit;

/**
 * @author zhangyimin
 * @date 2022/1/5 11:28
 */
public class FutureTask1 implements Callable<String> {
    // FutureTask_1 中持有 FutureTask_2 的引用
    FutureTask<String> futureTask2;

    // 通过构造器初始化 成员变量
    public FutureTask1(FutureTask<String> futureTask2) {
        this.futureTask2 = futureTask2;
    }

    @Override
    public String call() throws Exception {
        System.out.println("T1:洗水壶");
        TimeUnit.SECONDS.sleep(1);

        System.out.println("T1:烧开水");
        TimeUnit.SECONDS.sleep(15);

        // 获取 T2 线程的茶叶
        String teas = futureTask2.get();
        System.out.println("拿到茶叶:" + teas);

        System.out.println("T1:开始泡茶...");

        return "上茶:" + teas;
    }
}



package cn.com.zhangyimin.test;

import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;

/**
 * @author zhangyimin
 * @date 2022/1/5 11:29
 */
public class FutureTask2 implements Callable<String> {
    @Override
    public String call() throws Exception {
        System.out.println("T2:洗茶壶");
        TimeUnit.SECONDS.sleep(1);

        System.out.println("T2:洗茶杯");
        TimeUnit.SECONDS.sleep(2);

        System.out.println("T2:拿茶叶");
        TimeUnit.SECONDS.sleep(1);

        return "峨眉雪尖儿";
    }
}
package cn.com.zhangyimin.test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * @author zhangyimin
 * @date 2022/1/5 13:03
 */
@RunWith(SpringRunner.class)
public class FutureTaskTest {

    @Test
    public void makeTea(){

        // 创建 FutureTask_2 的任务
        FutureTask<String> futureTask2 = new FutureTask<>(new FutureTask2());
        // 创建 FutureTask_1 的任务,并将 FutureTask_2 任务的引用传入
        FutureTask<String> futureTask1 = new FutureTask<>(new FutureTask1(futureTask2));

        // 创建线程 T1,来执行任务 FutureTask_1
        Thread t1 = new Thread(futureTask1);
        t1.start();

        // 创建线程 T2,来执行任务 FutureTask_2
        Thread t2 = new Thread(futureTask2);
        t2.start();

        try {
            // 获取任务 FutureTask_1 的最后一步的结果
            System.out.println(futureTask1.get());
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }
}
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>