会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132441个问题
Python 全系列/第五阶段:数据库编程/mysql的使用 31921楼

老师怎么join方法视频里的和图片上说的不一样呢?

image.png

这里是调用这个方法的线程强制执行完之前其他线程处于阻塞状态

但是视频里是说:导致调用join的线程陷入阻塞状态,不影响其他线程的运行

image.png

然后我自己的代码结果是这样的:

package com.bjsxt.mythread;
public class ThreadJoin implements Runnable{

    @Override
    public void run() {
        for (int i=0;i<10;i++){
            System.out.println("--->TreadJoin线程"+Thread.currentThread().getName()+"---"+i);
        }
    }
}


package com.bjsxt.mythread;
//创建测试类进行测试演示同时此类也是主线程
public class TestThreadJoin {


    public static void main(String[] args) throws InterruptedException {
        //主线程
        ThreadJoin tj=new ThreadJoin();
        Thread t=new Thread(tj,"线程t");
        Thread t2=new Thread(tj,"线程t2");
        //启动线程
        t.start();
        t2.start();
        //以下代码为主线程中的循环
        for (int i=0;i<10;i++){
            //设置强制执行点
            if (i==3){
                t.join();//当这个线程执行到i=3的时候强制执行t线程
            }
            System.out.println("z主线程--->"+Thread.currentThread().getName()+"----->"+i);
        }

    }
}

运行结果是:在主线程循环里面t线程调用了jion方法,将主线程陷入了阻塞状态,t线程和t2线程抢占运行资源,运行完之后,主线程在运行

image.png


所以:到底对于调用join方法的定义到底是什么?以及视频里个人感觉调用join方法的是t线程而不是主线程,它最多只是t线程在主线程里调用了join方法

JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 31923楼

老师下面的代码两层for循环的逻辑不是十分理解。


为什么要做if(highlight.getField().getName().equals("item_title")) 然后进行searchPojo.setTitle(highlight.getSnipplets().get(0));?searchPojo本身没有item_title吗


另外field有item_title和item_sell_point, item_sell_point不管了?






// 高亮条件

        HighlightOptions hlOptions = new HighlightOptions();

        hlOptions.setSimplePrefix("<span style='color:red'>");

        hlOptions.setSimplePostfix("</span>");


        hlOptions.addField("item_title item_sell_point");

        query.setHighlightOptions(hlOptions);


        // 相当于可视化界面点击查询按钮得出的总体值

        HighlightPage<SearchPojo> hlPage = solrOperations.queryForHighlightPage("ego", query, SearchPojo.class);

        // 取出包含高亮的数据

        List<HighlightEntry<SearchPojo>> highlighted = hlPage.getHighlighted();


        // 创建一个集合,集合放所有查询到的数据,对应页面中

        List<SearchPojo> listResult = new ArrayList<>();


        for(HighlightEntry<SearchPojo> hlEntity : highlighted){

            // 非高亮数据,相当于可视化界面中docs

            SearchPojo searchPojo = hlEntity.getEntity();

            // 把从solr中取出的image转换为images

            String image = searchPojo.getImage();

            searchPojo.setImages(image!=null&&!image.equals("")?image.split(","):new String[1]);


            // 高亮数据,相当于可视化界面中highlighting

            List<HighlightEntry.Highlight> listHL = hlEntity.getHighlights();


            for(HighlightEntry.Highlight highlight : listHL){

                // 当前这个对象item_title包含高亮数据

                if(highlight.getField().getName().equals("item_title")){

                    // 替换普通数据

                    searchPojo.setTitle(highlight.getSnipplets().get(0));

                }

            }

            // 把处理完的包含高亮数据的对象放入到集合中

            listResult.add(searchPojo);

        }


JAVA 全系列/第十八阶段:亿级高并发电商项目_架构/编码(旧)/电商:使用Solr实现数据搜索 31926楼

netshop.zip

1592322475(1).jpg为什么我一用session就报这个错,在网上也没找到答案

Python 全系列/下架-第十二阶段:Python_大型电商项目(5天后下架)/Django项目阶段-电商项目(旧) 31927楼

记事本报错

# coding=utf-8
"""开发记事本软件的菜单"""
from tkinter import *
from tkinter.filedialog import *
from tkinter.colorchooser import *


class Application(Frame):

    def __init__(self,master=None):
        super().__init__(master)
        self.master = master
        self.textpad = None      # textpad 代表Text文本框对象
        self.pack()
        self.createWidget()
        self.filename = None     # 表示打开文本文件的名字
        self.contextMenu = None  # 上下文菜单对象

    def createWidget(self):
        # 创建主菜单栏
        menubar = Menu(root)

        # 添加快捷键事件处理
        root.bind("<Control-n>", lambda event: self.newfile())
        root.bind("<Control-o>", lambda event: self.openfile())
        root.bind("<Control-s>", lambda event: self.savefile())
        root.bind("<Control-q>", lambda event: self.exit())

        # 创建子菜单
        menuFile = Menu(menubar)
        menuEdit = Menu(menubar)
        menuHelp = Menu(menubar)

        # 将子菜单加入到主菜单栏
        menubar.add_cascade(label="文件(F)", menu=menuFile)
        menubar.add_cascade(label="编辑(E)", menu=menuEdit)
        menubar.add_cascade(label="帮助(H)", menu=menuHelp)

        # 添加菜单项
        menuFile.add_command(label="新建", accelerator="Ctrl+n", command=self.newfile)
        menuFile.add_command(label="打开", accelerator="Ctrl+o", command=self.openfile)
        menuFile.add_command(label="保存", accelerator="Ctrl+s", command=self.savefile)
        menuFile.add_separator()  # 添加分割线
        menuFile.add_command(label="退出", accelerator="Ctrl+q", command=self.exit)

        # 将主菜单栏添加到根窗口
        root["menu"] = menubar

        # 文本编辑区
        self.textpad = Text(root, width=50, height=30)
        self.textpad.pack()

        # 创建上下菜单
        self.contextMenu = Menu(root)
        self.contextMenu.add_command(label="背景颜色", command=self.openAskColor)

        # 为右键绑定事件
        root.bind("<Button-3>", self.createContextMenu)

    def openfile(self):
        self.textpad.delete("1.0", "end")  # 先把text控件中的内容清空
        with askopenfile(title="打开文件", initialdir="f:") as f:
            self.textpad.insert(INSERT, f.read())
            self.filename = f.name

    def savefile(self):
        with open(self.filename, "w") as f:
            c = self.textpad.get(1.0, END)
            f.write(c)

    def exit(self):
        root.quit()

    def newfile(self):
        self.textpad.delete(1.0, END)
        self.filename = asksaveasfile(title="另存为", initialfile="未命名",
                                      filetypes=[("文本文档", "*.txt")],
                                      defaultextension='.txt')
        self.savefile()

    def openAskColor(self):
        s1 = askcolor(color="red", title="选择背景颜色")
        self.textpad.config(bg=s1[1])

    def createContextMenu(self, event):
        # 菜单在鼠标右键单击的坐标处显示
        self.contextMenu.post(event.x_root, event.y_root)


if __name__ == '__main__':
    root = Tk()
    root.geometry("500x200+1000+300")
    app = Application(master=root)
    root.mainloop()

1.新建报错

image.png


2.右键报错

image.png

Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 31928楼

老师,您好!为什么我注入不了addUserService呢,出现了如下报错:


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of @Reference dependencies is failed; nested exception is java.lang.IllegalStateException: zookeeper not connected

at com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor.postProcessPropertyValues(AbstractAnnotationBeanPostProcessor.java:146) ~[spring-context-support-1.0.6.jar:na]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1427) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:893) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]

at com.bjsxt.consumer.UserConsumerApplication.main(UserConsumerApplication.java:10) [classes/:na]

Caused by: java.lang.IllegalStateException: zookeeper not connected

at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(CuratorZookeeperClient.java:83) ~[dubbo-remoting-zookeeper-2.7.6.jar:2.7.6]

at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter.createZookeeperClient(CuratorZookeeperTransporter.java:26) ~[dubbo-remoting-zookeeper-2.7.6.jar:2.7.6]

at org.apache.dubbo.remoting.zookeeper.support.AbstractZookeeperTransporter.connect(AbstractZookeeperTransporter.java:70) ~[dubbo-remoting-zookeeper-2.7.6.jar:2.7.6]

at org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter$Adaptive.connect(ZookeeperTransporter$Adaptive.java) ~[dubbo-common-2.7.6.jar:2.7.6]

at org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfiguration.<init>(ZookeeperDynamicConfiguration.java:70) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfigurationFactory.createDynamicConfiguration(ZookeeperDynamicConfigurationFactory.java:37) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory.lambda$getDynamicConfiguration$0(AbstractDynamicConfigurationFactory.java:39) ~[dubbo-common-2.7.6.jar:2.7.6]

at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[na:1.8.0_101]

at org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory.getDynamicConfiguration(AbstractDynamicConfigurationFactory.java:39) ~[dubbo-common-2.7.6.jar:2.7.6]

at org.apache.dubbo.common.config.configcenter.DynamicConfiguration.getDynamicConfiguration(DynamicConfiguration.java:223) ~[dubbo-common-2.7.6.jar:2.7.6]

at org.apache.dubbo.config.bootstrap.DubboBootstrap.prepareEnvironment(DubboBootstrap.java:857) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.config.bootstrap.DubboBootstrap.startConfigCenter(DubboBootstrap.java:603) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.config.bootstrap.DubboBootstrap.useRegistryAsConfigCenterIfNecessary(DubboBootstrap.java:671) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.config.bootstrap.DubboBootstrap.initialize(DubboBootstrap.java:509) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.config.bootstrap.DubboBootstrap.init(DubboBootstrap.java:494) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:190) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:158) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.getOrCreateProxy(ReferenceAnnotationBeanPostProcessor.java:274) ~[dubbo-2.7.6.jar:2.7.6]

at org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.doGetInjectedBean(ReferenceAnnotationBeanPostProcessor.java:143) ~[dubbo-2.7.6.jar:2.7.6]

at com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor.getInjectedObject(AbstractAnnotationBeanPostProcessor.java:359) ~[spring-context-support-1.0.6.jar:na]

at com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor$AnnotatedFieldElement.inject(AbstractAnnotationBeanPostProcessor.java:539) ~[spring-context-support-1.0.6.jar:na]

at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]

at com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor.postProcessPropertyValues(AbstractAnnotationBeanPostProcessor.java:142) ~[spring-context-support-1.0.6.jar:na]

... 18 common frames omitted

Caused by: java.lang.IllegalStateException: zookeeper not connected

at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(CuratorZookeeperClient.java:80) ~[dubbo-remoting-zookeeper-2.7.6.jar:2.7.6]

... 40 common frames omitted



目前来看主要是这段代码注入不了,麻烦老师看看image.png

JAVA 全系列/第十一阶段:分布式RPC调用和分布式文件存储/Dubbo 31929楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 31932楼
人工智能/第二阶段:人工智能基础-Python基础/Python基础语法-旧 31934楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637